检测Facebook OAuth令牌过期

时间:2012-05-15 23:23:37

标签: facebook oauth

我有一个Facebook应用程序可以在粉丝页面上安排帖子。

为此,该应用会获取一个OAuth令牌,用于在页面上发布。要获得此令牌,用户需要访问该应用。然而,有时Facebook会使这些令牌无效,至少如果用户更改了他们的FB密码,并且在其他一些与安全相关的案例中也是如此。

当发生这种情况时,应用程序将无法发布预定的帖子,用户不满意。我该如何解决这个问题?我可以在用户的​​令牌过期时通过电子邮件发送给用户,但我如何检测到期?鉴于我有超过10万用户,经常轮询令牌会很昂贵。

1 个答案:

答案 0 :(得分:3)

嗯,直接回答你的问题,你去:Facebook Debugger

在那里输入Access_token以检查其有效性和其他信息。但我知道这不会解决你的问题。我可以帮助你朝着正确的方向前进。


您会看到令牌有效性受您向用户提出的权限的影响。有offline_access权限可以为您提供一个不会超时的访问令牌,而不是常规的一小时令牌。我确信你知道这一点,因为你已经能安排用户帖子了。

不幸的是,offline_access现在是deprecated by Facebook (see this link)。从现在开始,即使没有许可,Facebook也会默认为我们提供2个月的access_token。从那时起,我们需要“刷新”或扩展访问令牌。阅读该链接的更多信息。

关于您在使用中更改密码,注销等问题,Facebook有自己的dedicated blog post about it as well, see here


如果您想自己检查令牌有效性的路径,可以设置每小时或每天运行的CRON(取决于您),并为每个令牌(/ me)执行快速API调用。如果失败或生成错误,则令牌已过期。

如果你每分钟都这样做会好多了:要检查10到20个代币,所以它不会给你的服务器带来沉重的负担,在一次执行中完成100,000多个电话。

相关问题