该按钮已添加到消息程序中。当用户单击它时,会弹出“开始”消息。该机器人从未将消息发回“开始”后,什么也没有发生。没有触发网络钩子(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/