我正在开发的应用程序在很大程度上依赖于通知用户。我希望通过让用户能够订阅直接发送到他们的Facebook Messenger的通知来利用信使的力量。当Facebook打开Facebook Messenger Platform时,这只能成为我的一个选择,但我认为这是一个很好的方式来使用Facebook的梦幻产品,并为我的用户提供奢侈品。
我非常了解平台的工作原理,并为用户选择"Send to Messenger" plugin时触发的回调创建了自己的webhook接收器。我还添加了Facebook Javascript SDK并在我的页面上呈现了该插件。
我对这个功能有几个问题:
一旦用户完成按下“Send To Messenger”按钮的流程,我就可以从触发的webhook回调中检索发送者_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是否会发生变化?
非常感谢任何见解,谢谢!
答案 0 :(得分:1)
我解决这个问题的方法是将我的用户ID从我的数据库中设置为&#39; ref&#39;或者“通过params&#39;对于Messenger OptIn。然后在我的webhook中,当我收到请求时,我将发件人ID添加到我的用户的数据库集合中。
当用户重新加载页面时,如果用户具有关联的发件人ID,我根本没有渲染信使插件。发件人ID无法更改。