【问题标题】:Facebook user access token expired at unix timeFacebook 用户访问令牌在 unix 时间过期
【发布时间】:2013-07-20 13:05:02
【问题描述】:

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

Question link

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

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)生成。

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

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

提前致谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 所以用户令牌的最大过期日期是两个月。没有办法使永不过期。
    • 您可以在这 60 天内检索“长期存在的令牌”。然后,这个长期存在的令牌再有效 60 天。如果您每次访问时都这样做,那么您将拥有“无限”访问权限,除非自上次续订以来 60 天的时间已过期。这并没有那么复杂,不是吗?
    • 那么我如何从我当前仍然有效/过期的 60 天令牌中检索另一个 60 天令牌?我发现调用图形 api 交换令牌 url 将只使用短期访问令牌来延长到期日期。在我当前的 60 天令牌有效/到期时,无论是服务器端还是客户端调用来延长到期日期,都可以帮助我。谢谢提前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2012-07-05
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多