【问题标题】:Rendering Facebook Messenger "Send to Messenger" Plugins When Previously Authenticated在先前经过身份验证时呈现 Facebook Messenger“发送到 Messenger”插件
【发布时间】:2017-01-08 02:19:27
【问题描述】:

我正在开发的应用程序在很大程度上依赖于通知用户。我想通过让用户订阅直接发送到他们的 Facebook Messenger 的通知来利用 Messenger 的力量。当 Facebook 开放 Facebook Messenger Platform 时,这才成为我的一个选择,但我认为这是利用 Facebook 出色的产品为我带来优势并为我的用户提供奢侈的好方法。

我非常了解平台的工作原理,并为用户选择 "Send to Messenger" plugin 时触发的回调创建了自己的 webhook 接收器。我还添加了 Facebook Javascript SDK 并在我的页面上呈现了插件。

我有几个关于功能的问题:

  1. 一旦用户完成导致按下“发送到 Messenger”按钮的流程,我就可以从触发的 webhook 回调中检索他们的 sender_id 并使用它调用 Send API 向他们发送消息,当用户完成流程时,插件有一个复选标记。但是当我重新加载页面时插件被重置为默认状态并且没有复选标记,我怎样才能将插件呈现为已选中状态?因为我现在知道用户 sender_id,所以我不需要他们再次完成流程并触发相同的回调。我有能力检查用户是否已经完成了流程,但是我怎样才能以正确的状态呈现插件,寻找这样的东西:

     if (user.sender_id?) {
         # show the check marked "Send To Messenger" plugin state
     }
     else {
         # show the default "Send To Messenger" plugin state
         <div class="fb-send-to-messenger" 
          messenger_app_id="APP_ID" 
          page_id="PAGE_ID" 
          data-ref="PASS_THROUGH_PARAM" 
          color="blue" 
          size="standard">
         </div>    
     }
    
  2. 一旦用户通过入口点一次,我可以将用户 sender_id 存储在我的数据库中吗? sender_id 会改变吗?

非常感谢任何见解,谢谢!

【问题讨论】:

  • 你解决了吗?
  • @FilipeFerminiano 不幸的是我没有找到解决方案。 :(

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-messenger facebook-messenger-bot


【解决方案1】:

我解决此问题的方法是将我的数据库中的用户 ID 设置为 Messenger OptIn 的“参考”或“通过参数”。然后在我的 webhook 中,当我收到请求时,我将 Sender ID 添加到我的用户的数据库集合中。

当用户重新加载页面时,如果用户有一个关联的 Sender ID,我根本没有渲染 messenger 插件。发件人 ID 不会改变。

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2016-08-20
    相关资源
    最近更新 更多