Facebook Messenger机器人的日期选择器卡

Facebook Messenger机器人的日期选择器卡,facebook,Facebook,我知道Facebook机器人可以使用各种各样的CTA卡 我真正需要的是一个日期选择器卡,可以发送给用户,用户可以选择一个日期并将其发送回。这是否可能使用Facebook机器人?Facebook messenger尚未在其模板中启动日期和时间选择器 但是你可以在别人的帮助下拥有自己 遵循以下步骤 创建按钮或通用模板,并使用 "buttons":[ { "type":"web_url", "url":"http://my_u

我知道Facebook机器人可以使用各种各样的CTA卡


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

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

但是你可以在别人的帮助下拥有自己

遵循以下步骤

创建按钮或通用模板,并使用

    "buttons":[
          {
            "type":"web_url",
            "url":"http://my_url_which_open_date_picker",
            "title":"Select date",
            "messenger_extensions": true,  
            "webview_height_ratio": "compact"
          }
    ]
将url替换为您的url。
注意:url应该在您的域的白名单中

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

在你的页面上

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

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;js.id=id;
js.src=“//connect.facebook.com/en_US/messenger.Extensions.js”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“信使”);
当Messenger Extensions JS SDK完成加载时,它将调用window.extasyninit,您将在该函数中获得用户ID

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

window.extasyninit=函数(){
//Messenger Extensions JS SDK已完成加载
getUserID(函数成功(uids){
var psid=uids.psid;
},函数错误(err){
});
};
uids是包含用户ID的对象
psid页面作用域用户ID

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

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

      }, function error(err) {

      });
</script>

Messenger Extensions.requestCloseBrowser(函数成功(){
},函数错误(err){
});

需要注意的是,这只适用于移动设备。桌面用户将看不到压缩页面,而是一个外部选项卡