无法为我们的应用程序扩展某些用户的访问令牌

时间:2013-05-24 17:20:47

标签: facebook facebook-graph-api facebook-oauth

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

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

  1. 转到此处:Buffer Facebook OAuth Test utility
  2. 使用测试facebook用户登录:

        username: ssadasivan@yahoo.com
        password: thisisabadpassword
    
  3. 回顾oauth流程。
  4. 作为参考,这是我们为此实用程序收到的输出:http://cl.ly/image/0U273e163o2o

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

    Reported issue with test utility

    Reported issue where solution did not resolve the issue

    Related Issue

    任何见解都会非常感激:)。

1 个答案:

答案 0 :(得分: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