无法使用指定的access_token访问应用程序

时间:2012-08-22 19:43:09

标签: facebook facebook-php-sdk access-token facebook-oauth facebook-access-token

我正在使用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 个答案:

答案 0 :(得分:2)

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

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

您的应用程序是否具有年龄门限或类似内容?

答案 1 :(得分:0)

在{_ 1}之后,您的查询在grant_type之前缺少&。它应该是:

APP_SECRET

来自Facebook开发者的Extending Access Tokens

编辑:
如果OP意味着超出当前应用用户群,某些用户遇到过期会话并报告了问题,则错误的查询字符串可能是一种解释。

该错误将导致access_token未被扩展,但仍将使用较短期访问令牌授予登录权限。在这种情况下,错误的查询字符串一直在代码库中,但仅在实时用户的access_tokens早于预期到期时才发现,与“许多人使用的app [..]”一致。

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

答案 2 :(得分:0)

你有失踪的&在APP_SECRET和grant_type之间。

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

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

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

希望有所帮助。

答案 3 :(得分:0)

听起来好像你的一些用户被错误地发放了寿命较短的令牌而不是你要求的扩展令牌。

您可能偶然发现了扩展访问令牌的已知错误。请查看this bug report on facebook以获取有关它的更多信息以及this question,但据我所知,还没有真正的解决方法。