Facebook Messenger bot的日期选择卡

时间:2016-05-31 06:15:49

标签: facebook

我知道Facebook机器人可以使用各种CTA卡,如here所示。

我真正需要的是一个可以发送给用户的日期选择卡,他们可以选择日期并将其发回。这可能是使用Facebook机器人吗?

1 个答案:

答案 0 :(得分:4)

Facebook messenger尚未在其模板中启用日期和时间选择器。

但是你可以通过webview and Extensions帮助让自己拥有。

请按照以下步骤操作。

创建按钮或通用模板并按下

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

用您的网址替换网址。
注意:网址应该在您的域名列入白名单

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

在您的页面上

<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。

<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

您可能还想在用户选择日期时关闭您的压缩页面。 这可以通过以下方式完成:

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

      }, function error(err) {

      });
</script>