在先前进行身份验证时呈现 Facebook Messenger "Send to Messenger"插件



我所使用的应用程序在很大程度上依赖于通知用户。我想利用信使的力量,让用户能够订阅直接发送到Facebook信使的通知。当脸书开放脸书信使平台时,这才成为我的一个选择,但我认为这是一个很好的方式,可以利用脸书的奇妙产品对我有利,并为我的用户提供奢侈。

我非常了解该平台的工作原理,并为用户选择"发送到Messenger"插件时触发的回调创建了自己的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是否更改?

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

我解决这个问题的方法是将数据库中的用户ID设置为Messenger OptIn的"ref"或"pass-through params"。然后在我的webhook中,当我收到请求时,我将Sender ID添加到我的User的数据库集合中。

当用户重新加载页面时,如果用户有一个相关的Sender ID,我根本没有提供信使插件。发件人ID不会更改。

相关内容

  • 没有找到相关文章