Карта выбора даты для бота Facebook Messenger

Я знаю, что есть различные CTA-карты, которые бот Facebook может использовать, как показано здесь.

Что мне действительно нужно, так это карта выбора даты, которую можно отправить пользователю, чтобы он мог выбрать дату и отправить ее обратно. Возможно ли это с помощью ботов Facebook?

1 ответ

В мессенджере Facebook не запущено средство выбора даты и времени в своих шаблонах.

Но вы можете сделать себя самостоятельно с помощью веб-браузера и расширений.

Следуй этим шагам.

Создать кнопку или общий шаблон и поместить кнопку с

    "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 должен быть в белом списке. Ваш домен

Теперь на этой веб-странице вы можете получить идентификатор этого конкретного пользователя, и пользователи легко отобразят его действия для выбора даты.

На твоей странице

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

Когда SDK Messenger Extensions завершит загрузку, он вызовет 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 - объект, содержащий идентификаторы пользователя
psid Page-scoped ID пользователя

Вы также можете закрыть свою страницу каландра, когда пользователь выбирает дату. Это можно сделать через:

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

      }, function error(err) {

      });
</script>
Другие вопросы по тегам