Facebook Messenger bot的日期选择器卡 [英] Date picker card for Facebook Messenger bot

查看:83
本文介绍了Facebook Messenger bot的日期选择器卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道Facebook机器人可以使用各种CTA卡,如此处.

I know that there are various CTA cards that Facebook bot can use as seen here.

我真正需要的是一种日期选择卡,可以将其发送给用户,他们可以在其中选择日期并将其发送回去.使用Facebook机器人可以做到这一点吗?

What I really need is a datepicker card that can be sent to the user where they can choose a date and send it back. Is this possible using Facebook bots?

推荐答案

Facebook Messenger未在其模板中启动日期和时间选择器.

Facebook messenger has not launched date and time picker in its templates.

但是您可以使用 webview和扩展 a>帮助.

But you can make you own with webview and Extensions help.

请按照以下步骤操作.

创建按钮或通用模板,然后在按钮上放置

Create Button or Generic Template and put a button with

    "buttons":[
          {
            "type":"web_url",
            "url":"http://my_url_which_open_date_picker",
            "title":"Select date",
            "messenger_extensions": true,  
            "webview_height_ratio": "compact"
          }
    ]

用您的网址替换网址.
注意:网址应该在您的域"白名单中

replace a url with your url.
NOTE: url should be in whitelist Your Domain

现在在该网页中,您可以获取该特定用户的userId,并且可以轻松地将其操作映射为日期选择.

Now in that web page you can get userId of that particular user and couls easily map his actions for date picking.

在您的页面上

<script>
(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.com/en_US/messenger.Extensions.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'Messenger'));
</script>    

当Messenger Extensions JS SDK完成加载后,它将调用window.extAsyncInit,您将在该函数中获取userId.

When the Messenger Extensions JS SDK is done loading, it will call window.extAsyncInit and you will get userId in that function.

<script>
    window.extAsyncInit = function() {
        // the Messenger Extensions JS SDK is done loading 
        MessengerExtensions.getUserID(function success(uids) {
            var psid = uids.psid;

        }, function error(err) {

        });
    };
</script>

uids是包含用户ID的对象
psid页面范围的用户ID

uids is Object containing user ids
psid Page-scoped user ID

当用户选择日期时,您可能还想关闭Calander页面. 这可以通过以下方式完成:

You may also want to close your calander page when user picks date. This can be done via:

 <script>
      MessengerExtensions.requestCloseBrowser(function success() {

      }, function error(err) {

      });
</script>

这篇关于Facebook Messenger bot的日期选择器卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆