4

我们一直遇到一个问题,即我们的一些用户即使在通过服务器端 oauth 流程并扩展令牌之后也只会收到短暂的访问令牌。在进行了一些调试之后,我意识到这发生在我们的生产应用程序中,但对我的任何测试应用程序都没有。Facebook 是否有可能出于某种原因限制我们的应用程序(可能是因为垃圾邮件报告?)

作为对此进行测试的一种方式,我创建了一个测试实用程序,它描述了我们的应用程序的 oauth 过程以及从 Facebook 收到的响应。

  1. 转到此处:缓冲 Facebook OAuth 测试实用程序
  2. 使用测试 facebook 用户登录:

        username: ssadasivan@yahoo.com
        password: thisisabadpassword
    
  3. 查看 oauth 流程。

作为参考,这是我们收到的此实用程序的输出:http: //cl.ly/image/0U273e163o2o

不幸的是,Facebook 对我们报告的回应并没有我们希望的那么有用。

报告的测试实用程序问题

报告的问题解决方案无法解决问题

相关问题

在这里的任何见解将不胜感激:)。

4

1 回答 1

0

我们也遇到过类似的问题,但是在使用他们的 javascript API 时。在某些情况下,访问令牌表现得很奇怪。(仅持续几秒钟)我们最终使用的解决方法是在任何 FB api 调用之前进行登录状态检查,例如:

FB.getLoginStatus(function (response) {
  //do your thing
}

我不知道你的后端代码是如何工作的。

基本思想是即使您的访问令牌仍然有效,也要保持当前的 facebook 会话处于活动状态。检查其新端点:https ://developers.facebook.com/roadmap/offline-access-removal/#extend_token

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 
于 2013-06-05T05:46:05.040 回答