javascript - Messenger "Get Started"按钮无法开始对话

标签 javascript node.js facebook facebook-messenger facebook-messenger-bot

该按钮已添加到消息程序中。当用户单击它时,会弹出“开始”消息。该机器人从未将消息发回“开始”后,什么也没有发生。没有触发网络钩子(Hook)。按钮保持在同一位置。仅在重新加载 Messenger 页面或单击 Messenger 中的另一个聊天后,它才会消失。

我怎样才能让它消失并至少打开Messenger? 如果一般没有网络钩子(Hook),我如何跟踪“GET_STARTED_PAYLOAD”?我的意思是,按钮提供的“开始使用”消息永远不会触发 webhook,而输入“开始使用”则可以正常工作。

setupTheBot();
function setupTheBot(){
  var button = {
      "setting_type": "call_to_actions",
      "thread_state": "new_thread",
      "call_to_actions": [
        { 
          "payload": "GET_STARTED_PAYLOAD"
        }
      ]
    };
  request({
    uri: 'https://graph.facebook.com/v2.6/me/thread_settings',
    qs: { access_token: PAGE_ACCESS_TOKEN },
    method: 'POST',
    json: button
  },
  function (error, response, body) {
        if (!error && response.statusCode == 200) {
            // Print out the response body
            console.log("Button: Setup changed GETSTARTED_BUTTON_PAYLOAD");
            console.log(body);
        } else { 
            // TODO: Handle errors
            console.log("Button: Failed. Need to handle errors.");
            console.log(body);
        }
    });
}

我调查了数十个类似的问题。 尝试了不同的实现方式。结果是一样的。

使用node.js服务器和ngrok进行测试。

最佳答案

如果有人感兴趣,原因是在developers.facebook.com上设置机器人。 您想要选择“Messenger”->“设置”滚动到“Webhooks”并按“编辑事件”添加选择的事件。

在文档中他们说,that you can subscribe to those in "Weebhooks" (Step 2.4) ,您可以在其中指定 TOKEN 和隧道。这是不正确的。您只能订阅“消息”。其中不包括“messaging_postbacks”、“messaging_optins”、“message_deliveries”等。

关于javascript - Messenger "Get Started"按钮无法开始对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48177335/

相关文章:

javascript - BootStrap header 固定

javascript - 使用 ng-click 将动态值传递给 Angular 函数

javascript - 从基于另一个 HTML 集合的 HTML 集合中删除项目

javascript - 如何模拟服务器?

iphone - FQL/Graph API/iOS SDK 中的“赞”功能

facebook - Facebook 注册插件中的 iframe 目标无法设置为 _self

android - 获取 native 客户端、firebase token

javascript - 在 Ember 中使用数据库中的 JSON 显示数组

javascript - 如何将现有回调 API 转换为 Promise?

javascript - 如何使用 Node js在mysql中使用数组更新多行