При написании бота для сообщества VK столкнулся с необходимостью отправки клавиатуры бота. Для этого JSON-объект клавиатуры передается строкой в параметре keyboard в методе messages.send
vk.messages.send({
user_id: //id получателя
message: //текст сообщения
keyboard: //клавиатура в формате json
});
Пример клавиатуры из документации:
// клавиатура вида
// | Red | Green |
// | White | Blue |
keyboard:
{
"one_time": false,
"buttons": [
[{
"action": {
"type": "text",
"payload": "{\"button\": \"1\"}",
"label": "Red"
},
"color": "negative"
},
{
"action": {
"type": "text",
"payload": "{\"button\": \"2\"}",
"label": "Green"
},
"color": "positive"
}],
[{
"action": {
"type": "text",
"payload": "{\"button\": \"3\"}",
"label": "White"
},
"color": "default"
},
{
"action": {
"type": "text",
"payload": "{\"button\": \"4\"}",
"label": "Blue"
},
"color": "primary"
}]
]
}
Я использую библиотеку VK-Promise. Без параметра keyboard сообщения уходят как надо. Однако, при попытке передать клавиатуру возникает ошибка 911 "Keyboard format is invalid", что странно, ведь код я копировал из документации.
Ошибка: