Отправка Клавиатуры API VK
Добрый день, уважаемые коллеги, подскажите, пожалуйста, что делаю не так?
Пишу Чат бота 1С, суть в чём, необходимо создать клавиатуру, вот код:
На сколько я понимаю, вроде всё правильно, однако, ВК выдаёт ошибку:
Пишу Чат бота 1С, суть в чём, необходимо создать клавиатуру, вот код:
Если ОбъектСообщения.Свойство("payload") И ЗначениеЗаполнено(ОбъектСообщения.payload) Тогда
Входящийpayload = vk2_botVK_SDKVKAPi.ОбработатьJSON(ОбъектСообщения.payload);
Данные = СформироватьКлавиатуру(Входящийpayload.button, Входящийpayload.level, from_id);
Функция СформироватьКлавиатуру |
---|
Функция СформироватьКлавиатуру(payload = "", level = 0, from_id = "");
Если payload = "" Тогда
buttons = СформироватьГлавноеМеню();
message = "Я бот 1с, выберите интерисующий пунт меню";
Иначе
//Если Level = 1 Тогда
//ИначеЕсли Level = 2 Тогда
//ИначеЕсли Level = 3 Тогда
//ИначеЕсли Level = 4 Тогда
//Иначе
//КонецЕсли;
buttons = СформироватьГлавноеМеню();
message = "Я бот 1с, выберите интерисующий пунт меню";
КонецЕсли;
ДанныеВозврата = Новый Структура;
ДанныеВозврата.Вставить("keyboard",vk2_BotVK_SDKVKAPI.СформироватьКлавиатуру(buttons));
ДанныеВозврата.Вставить("message",message);
Возврат ДанныеВозврата;
КонецФункции
Показать |
СформироватьГлавноеМеню |
---|
Функция СформироватьГлавноеМеню ()
buttons = Новый Массив; РядКнопок = Новый Массив; РядКнопок.Добавить(vk2_BotVK_SDKVKAPI.СформироватьКнопку("Счет-фактура", "chetfaktura",1)); buttons.Добавить(РядКнопок); //РядКнопок2 = Новый Массив; //РядКнопок.Добавить(vk2_BotVK_SDKVKAPI.СформироватьКнопку("Счет", "chet",1)); //buttons.Добавить(РядКнопок2); //РядКнопок3 = Новый Массив; //РядКнопок.Добавить(vk2_BotVK_SDKVKAPI.СформироватьКнопку("Акт", "akt",1)); //buttons.Добавить(РядКнопок3); Возврат buttons; КонецФункции[/1C-CODE] |
СформироватьКнопку |
---|
Функция СформироватьКнопку (label = "Тест", payload_buttons, payload_level, color = "positive", type = "text") Экспорт
Структура_payload = Новый Структура;
Структура_payload.Вставить("button", payload_buttons);
Структура_payload.Вставить("level", payload_level);
payload = СформироватьJSOn(Структура_payload);
action = Новый Структура;
action.Вставить("type",type);
action.Вставить("label",label);
action.Вставить("payload",payload);
Button = Новый Структура;
Button.Вставить("action",action);
Button.Вставить("color",color);
Возврат Button;
КонецФункции
Показать |
Сформировать клавиатуру |
---|
Функция СформироватьКлавиатуру (buttons) Экспорт
keyboard = Новый Структура;
keyboard.Вставить("one_time", false);
keyboard.Вставить("buttons", buttons);
keyboardJSON = СформироватьJSON(keyboard, Истина);
Возврат keyboardJSON;
КонецФункции
Показать |
На сколько я понимаю, вроде всё правильно, однако, ВК выдаёт ошибку:
Ошибка |
---|
{"error":{"error_code":100,"error_msg":"One of the parameters specified was missing or invalid: keyboard contains incorrect JSON","request_params":[{"key":"random_id","value":""},{"key":"peer_id","value":"73740708"},{"key":"group_id","value":"206937348"},{"key":"keyboard","value":"{\r\n\n\"one_time\": false,\r\n\n\"buttons\": [\r\n\n\n[\r\n\n\n\n{\r\n\n\n\n\n\"action\": {\r\n\n\n\n\n\n\"type\": \"text\",\r\n\n\n\n\n\n\"label\": \"Счет-фактура\",\r\n\n\n\n\n\n\"payload\": \"{/\"button/\":/\"chetfaktura/\",/\"level/\":1}\"\r\n\n\n\n\n},\r\n\n\n\n\n\"color\": \"positive\"\r\n\n\n\n}\r\n\n\n]\r\n\n]\r\n}"},{"key":"v","value":"5.90"},{"key":"method","value":"messages.send"},{"key":"oauth","value":"1"}]}} |
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот