通过外部网站调用在Facebook Messenger上触发Botframework v4

时间:2019-03-13 16:21:58

标签: facebook botframework facebook-messenger direct-line-botframework

我正在尝试打开一个特定的Messenger页面,并根据用户在我的网站上输入的参数触发一个对话框来显示轮播。 我利用m.me链接打开我的Messenger页面(部署了我的botframeowrk机器人的地方)。打开页面后,我无法调用对话框。

我该如何实现???

我浏览了Bosframework V4女士文档,但没有提到特定于通道的触发器。我想从网站向Bot传递4个参数,然后在对话框中进行api调用,我将调用该对话框显示结果。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在Facebook Developer门户中启用“消息传递引荐”才能使用m.me链接。在门户中,单击左侧的设置刀片,向下滚动至Webhooks,然后单击“编辑事件”。应该会弹出一个窗口,您可以在其中启用messaging_referrals

enter image description here

Facebook仅允许您将ref参数添加到m.me链接,因此要使用此链接向机器人发送其他数据,您将必须对ref参数中的值进行编码并解析数据机器人方面-我建议使用逗号或斜线之类的分隔符值来组织数据。

https://m.me/<PAGE_NAME>?ref=my,additional,data

该事件将作为具有引用属性的消息活动发送到bot,您可以在其中获取数据。

m.me链接漫游器活动

{
  "type": "message",
  "id": "CDbQi3u62J7",
  "timestamp": "2019-03-19T19:30:11.219Z",
  "serviceUrl": "https://facebook.botframework.com/",
  "channelId": "facebook",
  "from": {
    "id": "2031650190235097",
    "name": "TJ Durnford"
  },
  "conversation": {
    "isGroup": false,
    "id": "2031650190235097-218838049015546"
  },
  "recipient": {
    "id": "218838049015546",
    "name": "thdurn-all-channels"
  },
  "channelData": {
    "sender": {
      "id": "2031650190235097"
    },
    "recipient": {
      "id": "218838049015546"
    },
    "timestamp": 1553023811219,
    "referral": {
      "ref": "my,additional,data",
      "source": "SHORTLINK",
      "type": "OPEN_THREAD"
    }
  }

希望这会有所帮助!