1

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

问题链接

现在在过去的几天里,我的模块的一位用户出现了以下错误-

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

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


  1. 我确实明白,一旦用户的令牌过期,用户应该被重定向到我的访问令牌生成页面。
  2. 我还知道,通过将用户再次发送到 javascript sdk 登录流程,可以将有效的 60 天令牌再延长 60 天。

问题是我的 joomla(php cms) 模块被许多用户在他们的网站中使用来显示墙提要,这是通过使用他们的访问令牌的图形 api 调用完成的。他们生成的这个令牌来到我的网站和令牌中的访问令牌生成页面由 js sdk 登录流程和服务器端令牌交换(使用我的 fb 应用程序启动的 sdk)生成。

现在,一位用户突然在他们网站中的模块中看到访问令牌过期错误,正如我上面所说,这令人沮丧,因为他的网站访问者也看到了该错误而不是墙提要。所以,如果有什么方法可以在我的模块中编码,那么该访问令牌会在到期日期之前或到期时自动延长。

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

提前致谢

4

1 回答 1

1

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

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

您可以随心所欲地执行此操作,但是:一旦访问令牌过期,无法再访问,您需要再次通过完整的 OAuth 流程向用户发送。

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

于 2013-06-05T05:21:00.033 回答