因为Facebook正在移除offline_access权限,所以我想将我们的网站迁移到使用新系统。
我在Facebook的网站上找到了这份文档: https://developers.facebook.com/roadmap/offline-access-removal
但是,当我使用服务器端身份验证处理某个人时,我会得到以下响应:
access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4992
当我试图使用访问点(在该文档中)来延长访问令牌超过几个小时时,我会收到以下反馈:
access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4990
根据该文档,服务器端OAuth应该获得一个持续60天的令牌,我不明白为什么我没有拿到它。
我真的不想让我们的用户每2小时通过OAuth重定向一次。
有什么想法吗?谢谢!
更新
如所请求,这是我正在进行的流程(在浏览器中):
首先我将用户重定向到这里:
这将把用户重定向到这里:
http://localhost/user-social/facebook/redirect?code=BLAHBLAHBLAHsomeawesomecode#_=_
然后我像这样请求了访问令牌: 我从Facebook收到了这个回复:
access_token=BLAHBLAHBLAHdontusemytokensilly&expires=4057
这显然是一个短期令牌。 根据 Facebook 文档(如上所述),我应该收到长期令牌(因为我正在使用服务器端 OAuth)。
但是,由于它是短暂的,我试图将其交换成长期令牌: 这是Facebook返回的内容:
access_token=BLAHBLAHBLAHdontusemytokensilly&expires=3967
这两个请求返回的是同一个access_token。
更新2
我将上述access token放入Facebook Debugger中,返回结果如下:
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
更新3
按照 @phwd 的建议,删除了所有权限并重新授权该应用程序。Facebook API 返回以下内容:
access_token=BLAHBLAHBLAHdontusemytokensilly
这是否意味着我已经获得了长期的access_token?如果是这样,有效期在哪里?
更新4: 当我通过Facebook Debugger运行上述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天而是无限期。
你有任何想法为什么会这样?