我知道Facebook机器人可以使用各种CTA卡,如here所示。
我真正需要的是一个可以发送给用户的日期选择卡,他们可以选择日期并将其发回。这可能是使用Facebook机器人吗?
答案 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>