Facebook Messenger Bot 使用回发按钮共享结构化消息

And*_*rej 5 javascript facebook bots facebook-messenger

我正在审查 Facebook Messenger 平台,但找不到有关特定主题的任何信息。我希望机器人用户与他的联系人共享结构化消息,这会将联系人带回关心上下文的机器人聊天。

结构化消息的共享效果很好:

  1. 机器人响应消息包含带有“共享按钮”的模板
  2. 单击按钮打开本机共享菜单
  3. 用户选择要与之共享消息的联系人
  4. 消息发送给联系人
  5. 每个联系人都收到原始消息

所有这一切都如文档中所述:https : //developers.facebook.com/docs/messenger-platform/send-api-reference/share-button

谜题的下一部分是“回发按钮”,它可以像“分享按钮”一样添加到结构化消息模板中(在此处解释https://developers.facebook.com/docs/messenger-platform/send- api-reference/postback-button)。点击“回发按钮”将元数据发送到网络钩子。一切都很好......

假设我有一个搜索歌曲的机器人。用户键入部分歌词,机器人提供与这些匹配的歌曲列表。机器人将每首歌曲列为结构化消息,其中包含名为“赞”的“分享按钮”和“回传按钮”。想法是这样的消息由用户共享给他的联系人。'Like'(回发按钮)背后的想法是通过联系人接收消息来点击。每次点击“喜欢”都会将用户带到机器人聊天并执行回发。postack 背后的逻辑是跟踪喜欢特定歌曲的用户联系人。

所有这些都有效,直到联系的用户点击“喜欢”。单击打开机器人聊天(用户第一次看到欢迎信息),但不执行回发。如果我使用“URL 按钮”(使用 Messenger 扩展)也是如此。

有没有办法完成这样的事情?

谢谢

这是我想使用的带有回发按钮的消息示例:

var messageData = {
  recipient: {
    id: recipientId
  },
  message: {
    attachment: {
      type: "template",
      payload: {
        template_type: "generic",
        elements: [{
          title: "Shake it off",
          subtitle: "Lorem ipsum....",
          buttons: [{
            type: "web_url",
            title: "Watch video",
            url: "http...",
          }, {
            type: "postback",
            title: "Like",
            payload: "id=xyz",
          }, {
            type: "element_share",
          }]
        }]
      }
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

And*_*rej 0

Messenger 平台已更新,新功能提供了我所需要的功能:https ://developers.facebook.com/docs/messenger-platform/referral-params

  • _鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么它在那里。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。_ (2认同)