javascript - Facebook 用户访问 token 在 Unix 时间过期

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

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

Question link

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

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

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

<小时/>
  1. 我确实理解,一旦用户的 token 过期,应将用户重定向到我的访问 token 生成页面。
  2. 我还知道,通过将用户再次发送到 javascript sdk 登录流程,可以将有效的 60 天 token 再延长 60 天。

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

Now one user suddenly sees a access token expiring error in the module located in their site as i said above, and its frustrating coz his website visitors also sees that error instead of wall feed.So if there any way i can code in my module so that access token extends automatically bef4 expire date or at the time of expire.

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

提前致谢

最佳答案

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

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

您可以根据需要多次执行此操作,但是:一旦访问 token 过期,就无法再进行访问,并且您需要再次向用户发送完整的 OAuth 流程.

过期的访问 token 是完全没有用的。这是 FB 设计的。

关于javascript - Facebook 用户访问 token 在 Unix 时间过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927009/

相关文章:

javascript - JavaScript 中日期验证的正则表达式

ios - 一个 Facebook 应用与多个 iOS 应用关联

facebook - 如何在没有用户 facebook 授权的情况下进行 Facebook 地方搜索

Facebook OAuth "The domain of this URL isn' t 包含在应用程序的域中”

java - Facebook 用户生日为 java.util.Date

facebook-graph-api - 在 C# SDK 中请求页面访问 token

javascript - JQuery 将事件分配给按钮

javascript - 如何在排除某些字符的同时对字符串进行正则表达式测试?

javascript - 为数组中每个未选择的项目动态生成选择菜单选项

javascript - Facebook oauth 使用 javascript 访问本地主机网站