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

lot*_*ota 7 facebook access-token facebook-oauth facebook-php-sdk facebook-access-token

我使用Facebook长时间令牌(2个月),但FB开始是非决定性的并且有时给我这个回报

{
   "error": {
      "message": "Cannot access application using the specified access_token",
      "type": "OAuthException",
      "code": 1
   }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用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

有任何想法吗?

Gun*_*son 0

您的查询缺少&after APP_SECRET, before grant_type。它应该是:

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 
Run Code Online (Sandbox Code Playgroud)

来源:在 Facebook 开发者上扩展访问令牌。

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

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

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