1

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

我对平台的工作原理有深入的了解,并为用户选择“发送到 Messenger”插件时触发的回调创建了自己的 webhook 接收器。我还添加了 Facebook Javascript SDK 并在我的页面上呈现了插件。

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

  1. 一旦用户完成导致按下“发送到 Messenger”按钮的流程,我就可以从触发的 webhook 回调中检索他们的 sender_id 并使用它调用发送 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 会改变吗?

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

4

1 回答 1

1

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

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

于 2017-07-27T10:38:16.533 回答