我有一个非常有趣和恼人的问题。我建立了一个Facebook messenger机器人...一切正常。我有一个连接到我的NodeJS服务器的webhook。在我进入"最后触摸"该项目的持久菜单。
我使用以下命令添加了持久菜单
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type" : "call_to_actions",
"thread_state" : "existing_thread",
"call_to_actions":[
{
"type":"postback",
"title":"Estimate an app cost",
"payload":"startEstimation"
},
{
"type":"postback",
"title":"Get in touch",
"payload":"getInTouch"
},
{
"type":"web_url",
"title":"View Website",
"url":"http://whatever.com"
}
]
}' "https://graph.facebook.com/v2.6/me/thread_settings?access_token=BLA"
再次在这里一切正常我甚至得到{"result":"Successfully added structured menu CTAs"}
答案,现在我有我的菜单。唯一的问题是,当我点击其中一个回发按钮时,没有任何反应。
事实:
我让我的服务器在post api的第一行打印一些日志:
app.post(' / webhook',(req,res)=> {console.log(" Smth来自frm hook =>",req.body);
- >如果我和Postman一起发帖,它就有效。它适用于按钮 在谈话中,当我有一个带回发的按钮时,我得到了 答案但是菜单却没有。我没有收到任何日志 所有。就像Facebook永远不会触发我的钩子。
在页面订阅字段中,我添加了所有内容..这是多么绝望的情况大声笑。
机器人的其他所有工作正常。任何其他按钮/短信/回发都可以正常工作。
我的代码是从这里分叉的:https://github.com/api-ai/api-ai-facebook 这是webhook https://github.com/api-ai/api-ai-facebook/blob/master/src/app.js#L431
我能错过什么?
答案 0 :(得分:2)
结帐新的持久性菜单要求。
https://developers.facebook.com/docs/messenger-platform/messenger-profile/persistent-menu
它已经改变了一点(特别是POST请求),所以可能是问题所在。