我所使用的应用程序在很大程度上依赖于通知用户。我想利用信使的力量,让用户能够订阅直接发送到Facebook信使的通知。当脸书开放脸书信使平台时,这才成为我的一个选择,但我认为这是一个很好的方式,可以利用脸书的奇妙产品对我有利,并为我的用户提供奢侈。
我非常了解该平台的工作原理,并为用户选择"发送到Messenger"插件时触发的回调创建了自己的webhook接收器。我还添加了Facebook Javascript SDK,并在我的页面上呈现了该插件。
我有几个关于功能的问题:
-
一旦用户通过导致按下"发送到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> }
-
一旦用户通过入口点一次,我可以将sender_id存储在数据库中吗?sender_id是否更改?
非常感谢您的任何见解,谢谢!
我解决这个问题的方法是将数据库中的用户ID设置为Messenger OptIn的"ref"或"pass-through params"。然后在我的webhook中,当我收到请求时,我将Sender ID添加到我的User的数据库集合中。
当用户重新加载页面时,如果用户有一个相关的Sender ID,我根本没有提供信使插件。发件人ID不会更改。