Как сделать клавиатуру в ВК группе

Решил посмотреть и обкатать эту возможность.
Сделал группу добавил в нее api и написал небольшой php который успешно отсылает ответ на новые сообщения в группу, но не могу понять как клавиатуру внедрить в ответ(

if (!isset($_REQUEST)) <
return;
>
$confirmation_token = ‘Токен который возвращается при запросе’;
$token = ‘Ключ безопастности’;
$data = json_decode(file_get_contents(‘php://input’));
switch ($data->type)

case ‘confirmation’:
echo $confirmation_token;
break;

case ‘message_new’:
$user_id = $data->object->user_id;
$body = $data->object->body;
$user_info = json_decode(file_get_contents(«https://api.vk.com/method/users.get?user_ids=v=5.50»));
$user_name = $user_info->response[0]->first_name;//$user_info->response[0]->first_name;

$request_params = array(
‘message’ => «, привет. «,
‘user_id’ => ‘127483897’,

Делаем бота с клавиатурой в ВКонтакте


‘access_token’ => $token,
‘v’ => ‘5.50’
«payload»:»»
);

Цитата:

но не могу понять как клавиатуру внедрить в ответ

там же написано

Цитата:

JSON-объект клавиатуры передается строкой в параметре keyboard в методе messages.send с последней версией API. Структура объекта приводится тут.

описываете json структуру, отправляете ее как

Я правильно понимаю что эта строка совсем лишняя?

Цитата:

«payload»:»»

А переменную нужно описать как то так?

Цитата:

$keyboard = [[‘button’], «label-button», «blue»];

Цитата:

Я правильно понимаю что эта строка совсем лишняя?

да, он должен быть внутри структуры keyboard

Цитата:

keyboard:
<
«one_time»: false,
«buttons»: [
[ <
«action»: <
«type»: «text»,
«payload»: «»,
«label»: «Red»
>,
«color»: «negative»
>,
<
«action»: <
«type»: «text»,
«payload»: «»,
«label»: «Green»
>,
«color»: «positive»
>],
[ <
«action»: <
«type»: «text»,
«payload»: «»,
«label»: «White»
>,
«color»: «default»
>,
<
«action»: <
«type»: «text»,
«payload»: «»,
«label»: «Blue»
>,
«color»: «primary»
>]
]
>

КЛАВИАТУРА ДЛЯ VK БОТА ЗА 10 МИНУТ БЫСТРО И УДОБНО

Цитата:

А переменную нужно описать как то так?

нет, то, что выше, описывается чем то таким (не проверял)

Если что полный код

$confirmation_token = ‘Токен сообщества’;
$token = ‘Длинный ключ’;
$data = json_decode(file_get_contents(‘php://input’));

switch ($data->type) <
case ‘confirmation’:
echo $confirmation_token;
break;

case ‘message_new’:
$peer_id = $data->object->peer_id;
$body = $data->object->body;
$user_info = json_decode(file_get_contents(«https://api.vk.com/method/users.get?user_ids=v=5.50»));

$request_params = array(
‘message’ => «привет»,
‘peer_id’ => $peer_id,
‘access_token’ => $token,
‘v’ => ‘5.80’,
‘keyboard’ => json_encode($keyboard)
);

Еще по теме:  Как скопировать несколько ссылок в ВК

Источник: forum.ru-board.com

Генератор клавиатуры для вк

Чтобы включить клавиатуры в сообществе, перейдите в «Управление сообществом» → «Сообщения» → «Настройки для бота» и включите “Возможности ботов”. Там же можно добавить кнопку «Начать».

Клавиатура представляет собой массив массивов, то есть таблицу, у которой ячейки — это кнопки. У всех кнопок в рамках одной строки одинаковый размер, и они заполняют 100% ширины. Высота всех кнопок — константа. Текст отображается по центру кнопки и обрезается, если не помещается полностью при текущем размере экрана.

Стандартное отображение
По умолчанию, если не передан параметр inline, клавиатура показывается под полем ввода в диалоге с пользователем. Максимальный размер стандартной клавиатуры — 5 × 10. Максимальное количество клавиш: 40.

Inline-отображение
Клавиатура может отображаться внутри сообщения — это inline-отображение. Чтобы включить его, передайте параметр inline в объект клавиатуры. Её максимальный размер составит 5 × 6. Максимальное количество клавиш: 10.

Структура объекта keyboard

Важное замечание: чтобы получать параметр payload, нужно поднять версию callback API до 5.69 или выше. Параметр payload нужно передавать в формате JSON.

Клавиатуры и вложения

В vkbottle предусмотрено множество способов сериализации в объекты vk. Здесь будет рассмотрена клавиатура и все виды вложений

Клавиатура

Все генераторы вы можете увидеть здесь в использовании Генераторы, как и их составляющие, импортируются из корневого пакета vkbottle либо из vkbottle.tools

Билдер-генератор клавиатуры Keyboard

Как и все его элементы полностью типизирован, рекомендуем к использованию: Keyboard принимает one_time ( bool ) и inline ( bool ) (для чего они нужны читайте в документации вконтакте) У Keyboard есть методы: add , принимающий action и color; row() ; get_json() add — добавляет кнопку к текущему ряду кнопок row — переводит «курсор» на следующий ряд кнопок get_json — возвращает уже готовый json для прикрепления клавиатуры к сообщению (p.s. если клавиатура статична, это лучше делать сразу после генерации вне хендлера чтобы не тратить время на json.dumps каждый раз в хендлере)

Старый генератор клавиатуры keyboard_gen

Он считается устаревшим, но многим почему-то нужен, поэтому оставим это здесь

Еще по теме:  Как заблокировать человека в группе ВК

Вложения

Для того чтобы отправить вложение вконтакте вам нужно иметь его вида «type _ » , например «photo-41629685_457239401» Строку такого вида можно передать в метод отправки сообщения как attachment и вложение отправится (пример [первый хендлер]), но такую ссылку вы можете получить только загрузив картинку на сервера вконтакте, что делать если картинку нужно загружать на сервера вконтакте прямо во время выполнения хендлера? Все аплоадеры импортируются из корневого пакета vkbottle или из vkbottle.tools Вам, скорее всего, понадобится только метод .upload (предполагается что вы уже прочитали документацию, упомянутую выше) file_source принимает путь к файлу (еще он может принимать BytesIO, то есть читаемым файлом, если говорить упрощенно) У аплоадеров могут быть и другие индивидуальные поля в методе upload , но что туда передать должно быть понятно из контекста, если вы забыли передать какое то поле вам будет показано чего не хватает

Еще есть темплейты

Темплейты получились у вконтакте довольно странными ( ), но их поддержка в vkbottle тоже есть Для того чтобы понимать как должны работать темплейты и как делать элементы с идентичной «структурой» рекомендуется прочитать документацию вконтакте по темплейтами TemplateElement — обертка над элементом, по названиям полей вопросов возникнуть не должно, если возникли — возможно вы плохо ознакомились с документацей вконтакте template_gen — принимает темплейт элементы: my_template — уже готовый json для отправки в сообщении как template Вот пример отправки темплейта в среде хендлера с ивентом message : Источник

VkKeyboard¶

Модуль для удобного создания клавиатур для ботов class vk_api.keyboard. VkKeyboard ( one_time=False, inline=False ) [source] ¶ Класс для создания клавиатуры для бота (https://vk.com/dev/bots_docs_3) :param one_time: Если True, клавиатура исчезнет после нажатия на кнопку :type one_time: bool Получить json пустой клавиатуры. Если отправить пустую клавиатуру, текущая у пользователя исчезнет. add_button ( label, color= , payload=None ) [source]¶ Добавить кнопку с текстом. Максимальное количество кнопок на строке — MAX_BUTTONS_ON_LINE

add_callback_button ( label, color= , payload=None ) [source]¶ Добавить callback-кнопку с текстом. Максимальное количество кнопок на строке — MAX_BUTTONS_ON_LINE

add_location_button ( payload=None ) [source]¶ Добавить кнопку с местоположением. Всегда занимает всю ширину линии.

Еще по теме:  Если кинули на деньги Вконтакте
Parameters:
payload (strorlistordict) – Параметр для callback api

add_vkpay_button ( hash, payload=None ) [source]¶ Добавить кнопку с оплатой с помощью VKPay. Всегда занимает всю ширину линии.

Parameters:
hash – Параметры платежа VKPay и ID приложения

(в поле aid) разделённые https://dmsht.ru/generator-klaviatury-dlya-vk/» target=»_blank»]dmsht.ru[/mask_link]

создание бота для telegram

создание бота для telegram

Клавиатура с кнопками для Telegram бота на PHP script. В данном примере, показано как создать сразу 3 кнопки для клавиатуры и отправить через запрос в Telegram API. С данной клавиатурой нельзя использовать кнопки для ссылок или скрытым callback data запросом. В стандартном запросе, если не использовать параметры request_contact или request_location, будет запрос текста по названию кнопки (параметр text).
Официальная инструкция Telegram Api: https://core.telegram.org/bots/api#replykeyboardmarkup

Telegram bot создать кнопки и клавиатуру PHP script

пример запроса для Telegram API для создания клавиатуры с кнопками

$bot_token = «********* Бот Токен»; // Telegram bot токен
$chat_id = «TELEGRAM ЧАТ ID»; // не забываем добавить TELEGRAM CHAT ID
$reply = «Working»;
$url = «https://api.telegram.org/bot$bot_token/sendMessage»;

$keyboard = array(
«keyboard» => array(array(array(
«text» => «/button»

),
array(
«text» => «contact»,
«request_contact» => true // Данный запрос необязательный telegram button для запроса номера телефона

),
array(
«text» => «location»,
«request_location» => true // Данный запрос необязательный telegram button для запроса локации пользователя

)),
«one_time_keyboard» => true, // можно заменить на FALSE,клавиатура скроется после нажатия кнопки автоматически при True
«resize_keyboard» => true // можно заменить на FALSE, клавиатура будет использовать компактный размер автоматически при True
);

$postfields = array(
‘chat_id’ => «$chat_id»,
‘text’ => «$reply»,
‘reply_markup’ => json_encode($keyboard)
);

curl_setopt($curld, CURLOPT_POST, true);
curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curld, CURLOPT_URL,$url);
curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);

Какая разница между запросом измененного размера клавиатуры (True) и не измененного (False)?

измененный: клавиатура telegram бот not resizable: клавиатура telegram бот

Можно скрывать клавиатуру после нажатия кнопки автоматически: one_time_keyboard => Ture (для скрытия) or False

Данный array пример финального запроса, который будет отправлен на АПИ телеграма через CURL запрос:

Пример с измененным размером и скрытием клавиатуры:

Что случится, если нажать на кнопку с параметром request_location или request_contact на клавиатуре Telegram. пример:
request_contact: telegram бот request_location: telegram bot tutorial

Реклама

Источник: aaronsmith-rustech.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...