2

我加载应用程序一次,接收signed_request并从中检索用户令牌,然后使用内部链接完成iframe中的所有转换(无签名请求)。如何使用发布请求更新用户访问令牌?

我有几个用例需要处理。用户访问令牌过期之前:

  1. 用户点击了一个链接上(不阿贾克斯)和发送GET请求
  2. 用户填写表格,发送POST请求
  3. 用户发送Ajax请求需要的服务器以访问Facebook

Nr 1是最明显的情况下,我可以简单地重定向用户/授权,因为没有交易。 Nr3可以用解析服务器中的特殊错误并重定向到/ authorize的相同方式来解决。

Nr2是最不愉快的情况,因为我使用的是非事务性的mongodb。因此,我看到的唯一解决方案是 - 在做任何事之前,我需要检查访问令牌是否与我有关,如果它无效,请将整个请求体保存在会话中,重定向到/ authorize,然后再次处理请求。但是,如果有效,则无法保证我的交易成功,但我对此感到满意。

所以我认为真正的问题是......你如何处理这些情况?你如何刷新令牌?你如何处理它们?也许我错过了一些明显的东西?

任何想法将不胜感激。谢谢!

回答

1

在PHP SDK您可以拨打:

$access_token = $facebook->getAccessToken(); 

在JavaScript的SDK,可以用:

FB.getLoginStatus 

取得新的访问令牌,你需要的任何时间。使用graph explorer检查令牌。注意获得令牌的权限。

相关问题