我们遇到的问题是,即使在通过服务器端oauth流并扩展令牌之后,我们的某些用户也只会收到短期访问令牌。在做了一些调试之后,我意识到这种情况发生在我们的生产应用程序中,但不适用于我的任何测试应用程序。 Facebook是否有可能出于某种原因限制我们的应用程序(可能是因为垃圾邮件报告?)
作为一种测试方法,我创建了一个测试实用程序,它描述了我们的应用程序的oauth过程以及从Facebook收到的响应。
使用测试facebook用户登录:
username: ssadasivan@yahoo.com
password: thisisabadpassword
作为参考,这是我们为此实用程序收到的输出:http://cl.ly/image/0U273e163o2o
不幸的是,Facebook对我们报告的回应并没有像我们希望的那样有用。
Reported issue with test utility
Reported issue where solution did not resolve the issue
任何见解都会非常感激:)。
答案 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