you_are_enot
@you_are_enot
Пограммист любитель

Как отправить клавиатуру бота VK на node.js?

При написании бота для сообщества 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", что странно, ведь код я копировал из документации.
ls_rrc4uQxk.jpg
Ошибка:aKbZhmvPj2Y.jpg
  • Вопрос задан
  • 2742 просмотра
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Вам нужно использовать JSON.stringify(keyboard), а ведь в vk-io есть нормальная работа с клавиатурой :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы