7

我正在使用 Facebook 长期令牌(2 个月),但 FB 开始变得不确定,有时会给我这个回报

{
   "error": {
      "message": "Cannot access application using the specified access_token",
      "type": "OAuthException",
      "code": 1
   }
}

我正在使用 PHP SDK。

我正在使用此链接获取 2 个月令牌 https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRETgrant_type=fb_exchange_token&fb_exchange_token=SHORT_TIME_TOKEN

有任何想法吗?

4

4 回答 4

2

我遇到了这个问题,并直接从 FB 工作人员那里获得了一些支持。此错误的最可能原因是用户的“人口统计检查”。

我们的应用程序有一个年龄限制,因为它与酒精有关。某些用户的个人资料没有包含足够的信息,无法让 FB 确保他们超过其所在位置的饮酒年龄,因此会话创建失败。为什么这只发生在这个电话上而不是以前的电话上,我不知道。

您的应用程序是否有年龄限制或类似的东西?

于 2013-12-07T05:36:52.357 回答
0

您的查询在 grant_type 之前缺少&after 。APP_SECRET它应该是:

https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&  
grant_type=fb_exchange_token&           
fb_exchange_token=SHORT_LIVED_ACCESS_TOKEN 

资料来源:在 Facebook 开发人员上扩展访问令牌。

编辑:
如果 OP 意味着在当前应用程序用户群之外,一些用户经历了过期的会话并报告了问题,错误的查询字符串是可能的解释。

该错误将导致 access_token 不被扩展,但仍将使用较短的访问令牌授予登录权限。在这种情况下,错误的查询字符串一直存在于代码库中,但只有在实时用户的 access_tokens 比预期更早过期时才被发现,这与“许多人使用的应用程序 [..]”相吻合。

如果 OP 意味着在来自同一客户端的许多调用中使用正确的查询(而不是问题中所述的查询),则子集返回错误,那么我的解释是无效的。

于 2012-11-12T09:10:12.383 回答
0

您在 APP_SECRET 和 grant_type 之间缺少 &。

此外,在这个问题上似乎有一个 Fb 错误 - http://developers.facebook.com/bugs/536272816386515?browse=search_50a37bb1c333b4253892226

确保在获得“SHORT_TIME_TOKEN”后立即扩展令牌。您只能扩展用户令牌(不能扩展页面令牌)。确保在扩展之前获得正确的“短期令牌”。

此外,请检查您的应用程序中的“沙盒模式”。扩展令牌时可能会导致问题。尝试将其切换为“假”。

希望有帮助。

于 2012-11-14T11:17:29.337 回答
0

听起来好像您的一些用户被错误地发行了生命周期较短的令牌,而不是您要求的延长令牌。

您可能偶然发现了扩展访问令牌的已知错误。在 facebook 上查看此错误报告以获取有关它的更多信息以及此问题,尽管据我所知没有真正的解决方法。

于 2012-11-14T20:38:35.833 回答