15

我需要扩展我的 facebook 访问令牌,我称之为:

https://graph.facebook.com/oauth/access_token? 
client_id={MY PAGE ID}&
client_secret={THE SECRET KEY OF MY APP}&
grant_type=fb_exchange_token&
fb_exchange_token={AN ACCESS TOKEN FOR MY PAGE}

我收到了这个错误:

   "error": {
      "message": "Error validating application. Cannot get application info due to a system error.",
      "type": "OAuthException",
      "code": 101
   }

我已经看到那个 access_token 有很多问题,但是没有一个与页面相关的答案,idk 为什么 facebook 使用 api 那为什么......但是方式......

谢谢,

4

2 回答 2

21

要获得长期访问令牌,您需要执行以下步骤:

  1. 创建应用程序
  2. 创建一个页面(您的帐户需要是页面的“管理员”)
  3. 将应用程序关联到页面(与将页面选项卡添加到页面时相同的方式)

    http://facebook.com/add.php?api_key=*YOUR_APP_ID*&pages=1&page=*YOUR_PAGE_ID*
    
  4. 获取具有与您的应用程序关联的权限“manage_pages”的短期访问令牌。

    https://graph.facebook.com/oauth/authorize?client_id=__APP_ID__&scope=manage_pages&redirect_uri=http://www.facebook.com/connect/login_success.html
    then
    https://graph.facebook.com/oauth/access_token?client_id=__APP_ID__&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=__APP_SECRET__&code=__CODE_FROM_PREVIOUS_REQUEST__
    
  5. 将 Graph API Explorer 与请求/me/accounts一起使用,您可以查看您作为管理员的每个页面的访问令牌。问题是这些访问令牌是短暂的。

  6. 将您的短期访问令牌转换为长期(扩展访问令牌):

    https://graph.facebook.com/oauth/access_token?client_id=_APP_ID_&client_secret=_APP_SECRET_&grant_type=fb_exchange_token&fb_exchange_token=_ACCESS_TOKEN_ON_STEP_4_
    
  7. 您现在可以使用Access Token Debugger测试您的新访问令牌。

于 2012-11-20T16:48:47.317 回答
2

场景 5:页面访问令牌

当用户授予应用程序 manage_pages 权限时,应用程序能够通过查询 [User ID]/accounts Graph API 端点来获取用户管理的页面的页面访问令牌。启用迁移后,当使用短期用户访问令牌查询此端点时,获得的页面访问令牌也是短期的。

使用端点和前面解释的步骤将短期用户访问令牌交换为长期访问令牌。通过使用长期用户访问令牌,查询 [User ID]/accounts 端点现在将为用户管理的页面提供不会过期的页面访问令牌。当使用通过已弃用的 offline_access 权限获得的未过期用户访问令牌进行查询时,这也适用。

https://developers.facebook.com/roadmap/offline-access-removal/

于 2012-11-20T11:06:42.257 回答