由于 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 天。
关于为什么会出现这种情况有什么想法吗?