Facebook Messenger平台 - >使用graph-api订阅的应用程序对我不起作用

时间:2017-03-22 10:16:36

标签: facebook-graph-api facebook-messenger

我正在尝试为我的机器人开发一键式集成支持,其中包括FB messenger。 对于FB信使,我做了以下事情:

  1. 按照“quick-start”指南创建了一个Facebook App。
  2. 遵循“facebook-login”教程,并部署了一个facebook登录流程,该流程适用于:      - public_profile      - 电子邮件      - manage_pages      - pages_show_list      - pages_messaging_subscriptions      - pages_messaging
  3. 然后我使用'/ me / accounts'的graph-api获取我在facebook中创建的“测试用户”下的页面名称,页面ID和access_token列表。
  4. 现在,我选择了这个“测试用户”下的页面(具有所有权限),并试图运行这个JS代码 -
  5. FB.api(
          `/${page.id}/subscribed_apps?access_token=${page.access_token}`,
          function (response) {        
            console.log(`response = {$JSON.stringify(response)}`);
            if (response && !response.error) {          
              /* handle the result */
            }
          }
        );

    问题:我得到回复= {“数据”:[]},这可能没问题,但是当我查看页面 - >设置 - > Messenger平台 - >订阅应用时,我不知道看看那里订阅的任何应用程序。 顺便说一下,当我在没有正确的access_token的情况下运行它时,我会收到错误#210(“需要access_token”),这是预期的......

    知道如何正确地将应用程序订阅到页面吗? 必须说我也尝试使用图形api资源管理器工具并获得相同的结果......

    提前致谢: - )。

1 个答案:

答案 0 :(得分:0)

@CBroe弄错了,有两个问题:  1.我应该使用POST()而不是GET()方法。  2.当你使用graph-api-explorer工具时,你会看到它工作,然后降低角色并获得JS代码......问题是代码有点令人困惑,因为你得到的是:



FB.api(
  `/${my_page_id}/subscribed_apps`,
  'POST',
  {},
  function(response) {
      // Insert your code here
  }
);




但是,它应该是这样的:



FB.api(
  `/${my_page_id}/subscribed_apps`,
  'POST',
  {"access_token": `${page_access_token}`},
  function(response) {
      // Insert your code here
  }
);




请记住我在问题中描述的/ me / accounts api中的access_token。

再次感谢@CBroe告诉我如何解决这个问题: - )