获取页面令牌以将我的应用程序订阅给用户'网页

时间:2017-05-26 18:45:09

标签: javascript facebook facebook-graph-api token facebook-page

我正在开发一个应用程序来订阅在其中进行身份验证的用户的页面。 要测试应用程序,我使用测试用户登录(角色 - >测试用户) 该测试用户有两个主页。

首先,使用具有此范围的facebook登录按钮与用户一起登录:

" Public_profile,email,manage_pages,publish_pages,read_page_mailboxes,pages_show_list,pages_manage_cta,pages_manage_instant_articles"

我授予所有这个范围并检查登录状态:

   FB.getLoginStatus (function (response) {
     If (response.status === 'connected') {
        Console.log (response);
      }
   });

好的,使用access_token回复。

秒显示用户的页面:

   FB.api (
      "/ Me / accounts",
      Function (response) {
        If (response &&! Response.error) {
            Console.log (response);
        }
      }
   ), {Scope: "manage_pages"};

我得到了用户页面烫发的回应:

  {
    "data":
      [
        {
          "Access_token": "token",
          "Category": "Community",
          "Name": "Procastinators",
          "Id": "1692644001041745",
          "Perms": [
            "ADMINISTER",
            "EDIT_PROFILE",
            "CREATE_CONTENT",
            "MODERATE_CONTENT",
            "CREATE_ADS",
            "BASIC_ADMIN"
          ]
        }],
    Paging
      {
        Cursors
        {"Before": "MTY5MjY0NDAwMTA0MTc0NQZDZD", "after": "MjI5NTU0NjQwODY3NTYz"}
      }
  }

最后我想要订阅(这是必要的page_token,最后一次通话):

```

      FB.api (
           "/ 229554640867563 / subscribed_apps",
          Function {response} {
            If (response &&! Response.error) {
              Console.log (response);
            }
          }
      );

```

并且在最后一次订阅用户页面的调用中,先前获得的页面令牌失败了:

```

{
  "error":
  {
    "Message": "(# 210) A page access token is required to request this resource.",
    "Type": "OAuthException",
    "Code": 210,
    "Fbtrace_id": "EVeyT8s \ / Lgz"
  }
}

```

如果缺少某些步骤帮助我,我按照这些说明操作:

  1. 登录:https://developers.facebook.com/docs/facebook-login/web#logindialog
  2. 验证状态:https://developers.facebook.com/docs/facebook-login/web/accesstokens
  3. 获取页面令牌https://developers.facebook.com/docs/pages/access-tokens
  4. 订阅:https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps
  5. 所有这些都处于开发模式,具有测试用户角色。

    谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

问题是您使用的令牌不是页面上的令牌,所以我确保使用页面令牌

FB.api(
  "/1866825406900964?fields=access_token",
  function(response) {
    if (response && !response.error) {
      page_access_token = response.access_token
      FB.api(
        "/1866825406900964/subscribed_apps?access_token=" + page_access_token,
        function(response) {
          if (response && !response.error) {
            console.log(response);
          }
        }
      );
    }
  }
);