短期内使服务器端访问令牌过期

时间:2012-08-31 08:23:33

标签: facebook-graph-api

最近我们遇到了服务器端访问令牌的一些奇怪行为。它会在很短的时间内(大约15分钟)到期。场景如下:用户通过Facebook(服务器端)登录我们的页面,我们存储访问令牌。我们页面上的某些操作可以触发帖子/ Feed。在几个饲料站后,我们突然开始收到错误400和错误401.

错误400可能是由于帖子数量限制,但在错误401访问令牌过期后。

每一个行动都回应:

 {
   "error": {
       "message": "Error validating access token: Session has expired at unix 
                   time 1346321603. The current unix time is 1346320983.", 
       "type": "OAuthException", 
       "code": 190
       "error_subcode": 463
   } 

很难重现这种行为,但我们在测试环境中重复了几次(所以我们知道创建访问令牌时,该用户没有取消对应用程序的授权,也没有更改密码)。

为什么访问令牌会过期?

2 个答案:

答案 0 :(得分:1)

默认情况下,facebook会分配一个短暂的访问令牌。您需要申请长期令牌。

阅读文档,了解如何获取它:http://developers.facebook.com/roadmap/offline-access-removal/#extend_token

修改

以前的链接不再有效,请使用以下链接

https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/

答案 1 :(得分:1)

我仔细检查在应用程序高级设置上启用了“删除offline_access权限”,这样我就可以获得60天的服务器端令牌。

不确定原因,但所有访问令牌都已从访问令牌调试程序报告“大约一小时”到期。

我创建了新的应用程序(也使用了“删除offline_access权限”),现在我得到了2个月后到期的令牌。

不确定原因,但答案是创建新的应用程序。