Методы выбора местоположения и открытой карты в viber с узлом - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я работаю над сервисом определения местоположения в viber chatbot на Node, но либо viber docs отсутствует информация, либо я не понимаю что-то важное. Методы, которые мне нужны, это location-picker, чтобы создать кнопку для совместного использования местоположения с моим ботом, и open-map, чтобы открыть приложение карты по умолчанию для устройства пользователя и отображать там информацию при нажатии кнопки. Мне не удалось найти ни одного рабочего примера этой функции, ни найти фактических данных о том, как должны выглядеть запросы клавиатуры для них.

Я пытался создать такой объект:

"Buttons": {
  "Columns":6,
  "Rows":3,
  "ActionType": "open-map",
  "Map": {
    "Latitude": data.latitude,
    "Longitude": data.longitude
  },
  "Image": data.image
  },

Но это возвращает UnhandledPromiseRejectionWarning при отправке его в viber.

(Конечно, это не весь объект клавиатуры, а его «неработающая» часть; если я изменю ActionType на «ответить» и добавлю текст ответа, он будет работать просто отлично)

Для выбора местоположения я пробовал

"Buttons": {
        "Columns": 6,
        "Rows": 1,
        "BgColor": "#26CF94",
        "BgLoop": true,
        "ActionType": "location-picker",
        "Text": "Share location",
},

Но это возвращает UnhandledPromiseRejectionWarning.

С этого момента проблема очевидна, что-то не так с отправленным объектом клавиатуры, но я не могу понять, что именно не так. Так каков правильный способ сделать это?

p.s. Я использую библиотеку viber-bot для управления запросами

1 Ответ

0 голосов
/ 08 января 2019

Нет проблем с кнопкой. Проблема с версией API. Вам нужно указать версию API при подготовке сообщения.

var registerMessage = new TextMessage("Please register your account to continue", registerKeyboard,undefined,undefined,undefined,3)

Это для текстового сообщения. И я использую API версии 3. Точно так же вы можете сделать это для других типов сообщений и других версий API

...