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

Facebook Messenger Bot sharing structured message with postback button

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

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

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

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

拼图的下一部分是 'Postback Button',可以按照与 'Share Button' 相同的方式将其添加到结构化消息模板中(此处有解释 https://developers.facebook.com/docs/messenger-platform/send-api-reference/postback-button)。点击 'Postback Button' 将元数据发送到 webhook。也很好...

假设我有一个搜索歌曲的机器人。用户输入部分歌词,机器人会提供与这些歌词匹配的歌曲列表。每首歌都被 bot 列为结构化消息,其中 'Share Button' 和 'Postback Button' 称为 'Like'。想法是用户将此类消息共享给他的联系人。 'Like'(回发按钮)背后的想法是由收到消息的联系人点击。每次点击 'Like' 都应该将用户带到机器人聊天并执行回发。 postack 背后的逻辑是跟踪喜欢特定歌曲的用户联系人。

在联系用户点击 'Like' 之前一切正常。单击会打开机器人聊天(用户第一次看到欢迎信息),但不会执行回发。如果我使用 'URL Button'(带有 Messenger Extensions)也是如此。

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

感谢

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

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",
          }]
        }]
      }
    }
  }
};

Messenger 平台已更新,新功能完全满足我的需求:https://developers.facebook.com/docs/messenger-platform/referral-params