Facebook用户访问令牌在unix时间到期

时间:2013-06-04 20:36:15

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我有一个joomla模块,它使用Graph Api显示facebook组/页面墙的Feed。对于这个Graph Api,使用我的facebook应用程序创建的访问令牌进行调用。我通过以下方式生成此令牌,看看我的这个问题的第3个答案 -

Question link

现在在过去几天我的模块的一个用户遇到以下错误 -

Error validating access token: Session has expired at unix time 1370094151. The current unix time is 1370376671.

我会询问该用户是否更改了他的Facebook帐户密码或从我的应用程序中删除了他生成访问令牌的授权,如果由于这些原因显示错误。但是很可能是2个月刚刚过去。我知道fb long生活用户令牌在2个月内过期。这可能是一个原因。我有没有办法生成永不过期的令牌?我找到了一些关于令牌到期的帖子,但我无法得出结论。 欢迎任何解决方案......


  1. 我明白用户应该在其令牌过期时被重定向到我的访问令牌生成页面。
  2. 此外,我知道通过再次将用户发送到javascript sdk登录流程,可以将有效的60天令牌延长60天。
  3. 问题是我的joomla(php cms)模块被他们网站中的许多用户用来显示墙上的feed,这是通过图形api调用使用他们的访问令牌完成的。这个令牌他们生成来到我的访问令牌生成页面站点和令牌由js sdk登录流程和服务器端令牌交换生成(使用我的fb应用程序启动sdk)。

      

    现在,一个用户突然看到模块中的访问令牌过期错误   如上所述位于他们的网站,其令人沮丧的因为他的   网站访问者也看到错误而不是墙上的饲料。如果有的话   任何方式我可以在我的模块中编码,以便访问令牌扩展   自动bef4到期日期或到期时。

    所以这些都是我的场景,我必须自动扩展。所以这里的任何人都可以通过建议编码视角和所有方式或任何替代方案来帮助我。

    提前致谢

1 个答案:

答案 0 :(得分:1)

当用户更改密码时,对您的应用有 NO 影响。这就是OAuth的目的,完全解耦用户凭据和应用授权。

FB令牌确实过期。甚至那些“长寿代币”。在您获得访问令牌之后或之前使用它时,您需要立即将访问令牌交换为所谓的“长期令牌”。

您可以根据需要随时执行此操作,但是:一旦访问令牌过期,根本无法再访问,您需要再次向用户发送完整的OAuth流程

过期的访问令牌完全没用。这是FB的设计。