Introduction 我有一个 Facebook APP ,它已经 published 并被批准访问 manage_pagespages_messaging 权限 . Facebook Login and Messenger 也已安装 . 我也有 Webhook 套装,效果很好 .

My objective 我想让我的用户轻松地在应用程序中创建和发布机器人,就像Chatfuel所做的那样 . 用户使用Facebook登录,创建新的机器人,链接到页面并自动使用机器人 . 用户不会参与机器人发布过程的手动配置,而只是简单地指向他们希望机器人出现的页面 .

What I have done so far

  • 使用Facebook登录用户并使用 app_token 收集他们的 access_tokenuser_id

  • 使用令牌,检索用户拥有的页面 GRAPH_API_URL/me/accounts?access_token=USER_ACCESS_TOKEN

  • 从上面得到的结果,我'm able to display the pages to the users for them to choose where to publish the bot. I' m能够获得所选的 PAGE_IDPAGE_ACCESS_TOKEN 用于下一步

  • 然后我发送 POST 请求以将应用订阅到页面 . 请记住,应用程序与他们用于登录的应用程序相同,并根据我定义的范围批准所需的权限( 'email', 'public_profile', 'manage_pages', 'publish_pages', 'pages_show_list'

将应用程序订阅到页面,我发送POST请求到:

https://graph.facebook.com/v2.10/PAGE_ID/subscribed_apps?access_token=PAGE_ACCESS_TOKEN

我得到的回应是成功的:

{"success": true}

问题使用我拥有该过程的页面运行良好,我可以与机器人聊天,从应用仪表板我可以清楚地看到页面已添加到订阅列表中 . 我的用户可以完成所有过程,并且从日志中,他们也获得成功响应,但他们的页面没有添加,他们无法与机器人聊天 . 为了验证他们的订阅,我发送的GET请求https://graph.facebook.com/v2.10/PAGE_ID/subscribed_apps?access_token=PAGE_ACCESS_TOKEN和如下面的例子中的响应是肯定的:

{
  "data": [
    {
      "link": "http://mywebsite.com/",
      "name": "MyApp",
      "id": "1438393....."
    }
  ]
}

从突出显示的步骤,我可能会遗漏任何东西?我怎样才能正确完成上述工作?提前感谢您的意见 .