如何从 Facebook Graph API(服务器端身份验证)获取长期访问令牌?

2024-01-07

由于 Facebook 正在删除离线访问权限,我想继续迁移我们的网站以使用新系统。

我在 Facebook 的网站上找到了这份文档:https://developers.facebook.com/roadmap/offline-access-removal https://developers.facebook.com/roadmap/offline-access-removal

但是,当我使用服务器端身份验证处理某人时,我收到以下响应:

access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4992

当我尝试使用访问点(在该文档上)将访问令牌延长几个小时以上时,我得到以下信息:

access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4990

根据该文档,服务器端 OAuth 应该获得一个持续 60 天的令牌,我不明白为什么我没有得到它。

我真的不想每 2 小时向我们的用户发送一次 OAuth 重定向。

有任何想法吗?谢谢!

UPDATE

根据要求,这是我正在采取的流程(在浏览器中):

首先我将用户重定向到此处:

这会将用户重定向到此处:

http://localhost/user-social/facebook/redirect?code=BLAHBLAHBLAHsomeawesomecode#_=_

然后我请求了一个访问令牌,如下所示:

我从 Facebook 收到这条消息:

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=4057

这显然是一个短暂的令牌。 根据 Facebook 文档(上面),我应该收到一个长期存在的令牌(因为我使用的是服务器端 OAuth)。

然而,由于它是短暂的,我尝试用它换取长期存在的代币:

这是 Facebook 返回的内容:

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=3967

两个请求中返回相同的 access_token。

UPDATE 2

我将上面的访问令牌放入Facebook 调试器 https://developers.facebook.com/tools/debug这就是它返回的内容:

App ID: 
BLAHBLAH
User ID:    
211800900 : David Barratt
Issued: 
Unknown
Expires:    
1347303600 (in 40 minutes)
Valid:  True
Origin: Web
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload

UPDATE 3

删除我的所有权限并重新授权该应用程序后(如 @phwd 建议)。 Facebook API 返回以下内容:

access_token=BLAHBLAHBLAHdontusemytokensilly

这是否意味着我已返回长期有效的 access_token?如果是的话,过期时间在哪里?

UPDATE 4

当我通过 Facebook 调试器运行上述 access_token 时,我得到以下结果:

App ID: 
BLAHBLAH
User ID:    
211800900 : David Barratt
Issued: 
1347309538 (39 minutes ago)
Expires:    
Never
Valid:  True
Origin: Web
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload

这似乎解决了原来的问题,但奇怪的是,access_tokens 是无限期的,而不是持续规定的 60 天。

关于为什么会出现这种情况有什么想法吗?


不确定你是否知道。但无论用户登录您的应用程序多少次,访问令牌每天只会更新一次。

See: https://developers.facebook.com/roadmap/offline-access-removal/ https://developers.facebook.com/roadmap/offline-access-removal/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Facebook Graph API(服务器端身份验证)获取长期访问令牌? 的相关文章

  • Parse.com 和 Facebook 登录,运行无限循环

    我将 Parse 和 Facebook iOS SDK 都更新到了最新版本 当我尝试使用 Facebook 登录时 我的应用程序崩溃了 从调试器中我可以看到它正在无限循环中调用 3 4 个方法 我的登录代码如下所示 void openSes
  • 无法创建任何应用程序请求

    我想用 facebook app graph 发送请求 有时成功 有时失败并返回值 error message 2 Failed to create any app request type OAuthException code 2 请帮
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • Facebook 点赞按钮消失

    我的网站中的 Facebook Like 按钮出现问题 添加此代码 由 facebook 提供 按钮在创建时正确显示在任何页面中
  • 如何使用 Google Contact API v3 和 OAuth v2 UserCredentials 创建 ContactsService

    我的应用程序使用 Google API Calendar V3 和 OAuth 效果非常好 它会在第一时间征求用户的同意 使用日历服务可以轻松创建 修改和删除日历事件 到目前为止 一切都很好 现在我想请求用户允许添加和修改联系人数据 通过添
  • 如何获取所有喜欢 Facebook 帖子的人?

    我有脸书post https www facebook com Eventinarea posts 336638873112346 我可以点击 77 人这样 并获得我需要的所有人员 问 有没有办法通过FB API获取这些人 PS 我想从这些
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • FBFriendPickerViewController 未显示所有好友

    我正在使用 FBFriendPickerViewController 在我的 iOS 应用程序中显示要邀请的朋友列表 它仅显示安装了该应用程序的好友列表 为什么是这样 我还在我的应用程序中直接与 Facebook sdk 交互 以使用 Gr
  • 调用“DOMNodeInserted”事件时添加元素

    我想在每个 喜欢 按钮 chrome 扩展 之后添加一个元素 由于帖子被添加到新闻提要而不刷新页面 我必须添加一个事件侦听器 DOMNodeInserted 但是当我尝试把after 里面的功能 它不起作用 Code contentArea
  • MacOS 10.15 (Catalina) 中的 ASWebAuthenticationSession

    我正在尝试实施新的ASWebAuthenticationSession在 MacOS 10 15 中 我对callbackURLScheme 头文件为ASWebAuthenticationSession says 回调 URL 通常具有自定
  • Facebook API:允许我自己的网站半永久地访问我的个人资料

    本质上 我想让我的博客从我的 Facebook 个人资料中抓取墙上的照片 状态更新等 我知道 Javascript sdk 是如何工作的 用户单击一个特殊的 Facebook 按钮 然后在短时间内授予我的网站权限 我用它来抓取在我的网站上发
  • iOS5 和 Facebook API

    我想将我的应用程序与 Facebook 集成并从 github 下载 Facebook ios sdk 但是 该 sdk 适用于 Xcode 4 0 代码库 我正在使用 Xcode 4 2 for iOS 5 beta 5 应用程序 是否有
  • Facebook Workplace API 身份验证

    我正在开发一个与 Facebook 的 Workplace 集成的 Web 应用程序 我花了一整天的时间试图弄清楚如何使用 OAUTH 身份验证机制进行成员身份验证 由于我拥有应用程序访问令牌 我能够获取用于模拟的成员访问令牌 但是 我如何
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 如何检查用户是否使用 FB SDK 4.0 for Android 登录?

    几天前 我在我的应用程序中实现了 FB Login 今天我发现我实现的大部分内容现在都已弃用 之前我用的是Session查看用户是否已登录 但是 这不适用于新的 SDK 根据他们的文档 我们可以使用AccessToken getCurren
  • Facebook JS SDK渐进式网络应用程序问题

    我有一个使用 Angular 4 构建的渐进式 Web 应用程序 我的问题是从主屏幕应用程序使用时 Facebook 登录对话框不会自动关闭 在 Chrome 浏览器中打开时它工作得很好 但是当我从安装的主屏幕应用程序使用它时 对话框窗口打
  • 如何在 Android 上为 Facebook 的应用程序制作新菜单? [复制]

    这个问题在这里已经有答案了 可能的重复 Android facebook 风格幻灯片 https stackoverflow com questions 8657894 android facebook style slide 最近 Fac
  • 使用 HybridAuth 登录 Facebook 显示错误 您无法直接访问此页面

    我正在尝试为我的网站编写一个插件 以使用 HybridAuth 与 facebook 连接 类 我刚刚尝试了以下代码 function authenticatewith provider ini set display errors on
  • 在 Facebook 上分享时如何更改 Play 商店应用程序的预览?

    我已在 Google Play 开发者控制台中更改了游戏的图标和屏幕截图 并且它在 Play 商店中正确显示 但当我尝试在 Facebook 上分享 Play 商店链接时 预览会带有旧图标和屏幕截图 如何将此预览更新到应用程序的最新版本 你

随机推荐