如何使用发布请求更新用户访问令牌?

时间:2012-05-03 23:01:55

标签: facebook facebook-graph-api facebook-opengraph facebook-authentication

我加载应用程序一次,接收signed_request并从中检索用户令牌,然后iframe中的所有转换都使用内部链接完成(没有签名请求)。

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

  1. 用户点击了下一个链接(不是ajax)并发送了get request
  2. 用户填写表格并发送邮寄请求
  3. 用户向需要访问facebook的服务器发送了ajax请求
  4. Nr 1是最明显的情况,我可以简单地将用户重定向到/授权,因为没有交易。 Nr3可以用从服务器解析特殊错误并重定向到/授权的相同方式解决。

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

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

    任何想法都将受到高度赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

在PHP sdk中,您可以调用:

$access_token = $facebook->getAccessToken();

在javascript sdk中,您可以使用:

FB.getLoginStatus

随时获取新的访问令牌。使用graph explorer检查令牌。记住获得令牌的权限。