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

Posted

技术标签:

【中文标题】Facebook Messenger Bot 使用回发按钮共享结构化消息【英文标题】:Facebook Messenger Bot sharing structured message with postback button 【发布时间】:2017-02-14 09:51:12 【问题描述】:

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

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

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

文档中解释的所有内容:https://developers.facebook.com/docs/messenger-platform/send-api-reference/share-button

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

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

在联系用户点击“喜欢”之前,所有这些都有效。单击打开机器人聊天(用户第一次看到欢迎信息),但不执行回发。如果我使用“URL 按钮”(带有 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",
          ]
        ]
      
    
  
;

【问题讨论】:

你能分享你发送的回发按钮的 json 配置吗? @kinshukkar 我在上面添加了带有回发按钮的消息 【参考方案1】:

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

【讨论】:

鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。 你是如何让它工作的?我有同样的问题 - 但与 ref params 链接而不是回发按钮共享结构效果不佳 它只是使用m.me/mybot?ref=myparam url 对我有用。 @Elwhis 什么不适合你? @Andrej 没有选项作为回发按钮的后备网址(普通按钮有),当我使用带有此网址的普通按钮时,对话会在新窗口中继续,这不是不错 @Elwhis 我仍然不清楚您的用例,也许您可​​以简单解释一下...我所拥有的是与 ref 链接共享一条消息,因此预计会与在新窗口中继续,因为用户来自与机器人不同的对话。

以上是关于Facebook Messenger Bot 使用回发按钮共享结构化消息的主要内容,如果未能解决你的问题,请参考以下文章

“正在输入...”指示在 bot 框架 + facebook Messenger 中不会消失

java的Facebook Messenger bot对象结构

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

托管 Facebook Messenger Bot 代码的最佳位置是啥? [关闭]

使用 facebook messenger bot 示例教程代码时,我收到消息:'(#100) No matching user found'

Facebook Messenger 如何与 Wit.ai Bot Engine 连接?