Facebook Messenger Postback

时间:2017-03-02 19:56:30

标签: javascript node.js facebook facebook-graph-api

我有一个非常有趣和恼人的问题。我建立了一个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

我能错过什么?

1 个答案:

答案 0 :(得分:2)

结帐新的持久性菜单要求。

https://developers.facebook.com/docs/messenger-platform/messenger-profile/persistent-menu

它已经改变了一点(特别是POST请求),所以可能是问题所在。