我目前正在Node上的viber chatbot中从事基于位置的服务,但是viber docs缺少信息或我不了解重要的信息。
我需要的方法是location-picker
来创建一个与我的机器人共享位置的按钮,而open-map
来为用户设备打开默认的地图应用程序,并在按下按钮时显示信息。我既没有找到此功能的任何可行示例,也没有找到有关这些功能的键盘请求的实际数据。
我试图制作一个像这样的对象:
"Buttons": {
"Columns":6,
"Rows":3,
"ActionType": "open-map",
"Map": {
"Latitude": data.latitude,
"Longitude": data.longitude
},
"Image": data.image
},
但这会在将其发送到viber时返回UnhandledPromiseRejectionWarning。
(当然,这不是整个键盘对象,而是它的“不起作用”部分;如果我将ActionType更改为“ reply”并添加回复文本,它将很好用)
对于我尝试过的位置选择器
"Buttons": {
"Columns": 6,
"Rows": 1,
"BgColor": "#26CF94",
"BgLoop": true,
"ActionType": "location-picker",
"Text": "Share location",
},
但这将返回UnhandledPromiseRejectionWarning。
从这一点来看,问题很明显,发送的键盘对象出了点问题,但我无法弄清楚到底是什么问题。那么正确的方法是什么?
p.s。我正在使用viber-bot库来管理请求
答案 0 :(得分:0)
按钮没问题。问题出在API版本。准备message时需要指定API版本。
var registerMessage = new TextMessage("Please register your account to continue", registerKeyboard,undefined,undefined,undefined,3)
这是短信。我正在使用API版本3。同样,您可以对其他类型的消息和其他api版本执行此操作