В этой статье мы рассмотрим как просто и быстро создать кнопки для управления ботом. Кнопки упрощают использование бота и делают управление им удобнее, чем писать текстовые команды.
Требования:
PHP +5.6
VK API v5.126
Статья обновлена до последней версии API 5.126 на сегодняшний день.
Мы будем использовать библиотеку для работы с API VK, скачать ее можете ниже
simplevk-master.rar
Загружаем папку с файлами на сервер, туда же где будем создавать файл, для работы бота нужен будет сервер, для начала можете использовать бесплатный, на сайте есть статья как запустить вк бота на бесплатном хостинге
Создаем файл с названием bot.php в том же месте, где лежит наша библиотека и начинаем писать следующий код.
setConfirm(ACCESS_KEY); // ТУТ НАШИ КНОПКИ === $btn_1 = $vk->buttonText(‘Кнопка 1’, ‘green’, [‘command’ => ‘btn_1’]); $btn_2 = $vk->buttonText(‘Кнопка 2’, ‘blue’, [‘command’ => ‘btn_2’]); $btn_3 = $vk->buttonText(‘Кнопка 3’, ‘red’, [‘command’ => ‘btn_3’]); $btn_4 = $vk->buttonText(‘Кнопка 4’, ‘white’, [‘command’ => ‘btn_4’]); // =================== $vk->initVars($peer_id, $message, $payload, $vk_id, $type, $data); // Инициализация переменных. Проще говоря библиотека сама создает нужные переменные, а в качестве примера ниже привели как бы пришлось писать переменные без инициализапции // ====== Наши переменные ============ //$peer_id = $data->object->peer_id;// Узнаем ID пользователя, кто написал нам //$message = $data->object->text; // Само сообщение от пользователя // ====== *************** ============
Этот код мы писали ранее, в статье как создать простого бота вк, там же мы рассматривали как его подключать к сообществу.
Как создать меню в боте?
Теперь создаем переменные кнопок, в этой статье их будет всего 4, но по этим примерам, Вы с легкостью сможете добавить еще. В коде выше они уже есть
$btn_1 = $vk->buttonText(‘Кнопка 1’, ‘green’, [‘command’ => ‘btn_1’]); $btn_2 = $vk->buttonText(‘Кнопка 2’, ‘blue’, [‘command’ => ‘btn_2’]); $btn_3 = $vk->buttonText(‘Кнопка 3’, ‘red’, [‘command’ => ‘btn_3’]); $btn_4 = $vk->buttonText(‘Кнопка 4’, ‘white’, [‘command’ => ‘btn_4’]);
Рассмотрим их подробнее.
$btn_1 — Название переменной, далее вызываем функцию из библиотеки и пишем параметры = $vk->buttonText(‘Кнопка 1’, ‘green’, [‘command’ => ‘btn_1’]); btn_1 название кнопки, «Кнопка 1» любой текст в кнопке, может повторятся, «green» цвет кнопки, всего доступно 4 варианта:
green — Зеленый
blue — Синий
red — Красный
white — Белый
Теперь давайте вызовем кнопки и посмотрим как они смотрятся. Создаем проверку события на новое сообщение:
if ($data->type == ‘message_new’) < // Создаем проверку на новое сообщение и вызываем кнопки $vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1, $btn_2, $btn_3, $btn_4]]); >
МЕНЮ ДЛЯ РЕГИСТРАЦИИ В БОТЕ VK
Проверим работу в Вконтакте
Кнопки появились, но если на них нажимать, бот снова их будет присылать, давайте привяжем их к определенному тексту, по умолчанию это кнопка Начать, это и будем использовать.
В код добавим переменную которая содержит текст сообщения и будем проверять, если это слово Начать, то покажем кнопки, все другое игнорируется.
if ($data->type == ‘message_new’) < // Создаем проверку на новое сообщение и вызываем кнопки if ($message == ‘Начать’) < $vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1, $btn_2, $btn_3, $btn_4]]); > >
Теперь для каждой кнопки сделаем свои ответы, так как сейчас они не работают. Для этого нужно получить payload и сделать проверку на выбранную кнопку
if ($data->type == ‘message_new’) < // Создаем проверку на новое сообщение и вызываем кнопки if ($message == ‘Начать’) < $vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1, $btn_2, $btn_3, $btn_4]]); > if (isset($data->object->payload)) < //получаем payload $payload = json_decode($data->object->payload, True); > else < $payload = null; >$payload = $payload[‘command’]; // Теперь пишем действия с кнопками if ($payload == ‘btn_1’) $vk->sendMessage($peer_id, «Вы выбрали первую кнопку, любой ответ на это событие»); if ($payload == ‘btn_2’) $vk->sendMessage($peer_id, «Вы выбрали вторую кнопку, любой ответ на это событие»); if ($payload == ‘btn_3’) $vk->sendMessage($peer_id, «Вы выбрали третью кнопку, любой ответ на это событие»); if ($payload == ‘btn_4’) $vk->sendMessage($peer_id, «Вы выбрали четвертую кнопку, любой ответ на это событие»); if ($message == ‘Отключить’) $vk->sendButton($peer_id, «Кнопки скрыты, снова вызвать их, отправьте Начать, Ваш ID $vk_id», [[]]); >
Сразу же сделали и скрытие кнопок по команде Отключить, кнопок может быть сколько угодно, отображать на странице за раз можно 10 кнопок, используя кнопки можно сделать переход в разные разделы и быстрое обращение к боту, исходник с библиотекой можете скачать в самом низу.
Для того что бы выставить кнопки столбцом, а не в ряд, нужно:
Заменить:
$vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1, $btn_2, $btn_3, $btn_4]]);
$vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1], [$btn_2], [$btn_3], [$btn_4]]);
Получаем вот такой вариант:
Вид кнопок может быть разным, что бы разместить 1 кнопку в столбец, 2 и 3 в строку, а 4 тоже в столбец, нужно взять в квадратные скобки 2 и 3 кнопки
$vk->sendButton($peer_id, «Вот список кнопок, выбирайте :-)», [[$btn_1, [$btn_2, $btn_3], $btn_4]]);
Я думаю с этим все понятно, дальше быстро пробежимся по запуску бота, не смотря на то, что на сайте уже есть статья на эту тему.
Созданные файлы мы загружаем на хостинг, советую выделить для этого 100 рублей, цена 1 пачки сигарет, ну или 2 шоколадки 🙂 покупаем готовый хостинг, если не нужна база данных в будущем, то стоимость падает в 2 раза, до 40 рублей
Это стоимость на HostLine.ru
Переходим в ISPManager прямо из личного кабинета
Далее выбираем наш сайт, HostLine создает автоматически домен 3 уровня, и переходим в каталог
И закачиваем наши 2 файла
Теперь перейдя по нашему домену, в моем случае это http://vh328199.hostline.su/bot.php, если домен не отвечает, нужно немного подождать, пока ваш провайдер не начнет его видеть, обычно это занимает не более 24 часов.
Теперь эту ссылку вставляем в настройки VK API самой группы
И не забывайте включить Тип событий на входящие сообщения
На этом все, задавайте свои вопросы в комментарии, обязательно ответим на них.
keyboard_bot.rar
Новость отредактировал: Сергей Котов — 23-03-2021, 18:03
Причина: Статья обновлена до последней версии API 5.126 на момент редактирования.
- Сергей Котов
- 01.04.2019
- 37 202
- 50
- 11
Источник: kotoff.net
Что такое кнопки и примеры их использования ВКонтакте
Кнопки — это элементы в диалоге с сообществом для вызова команд чат-бота (располагаются под полем для ввода сообщения, если они доступны).Кнопки заменяют ручной ввод текста при общении с чат-ботом, позволяя привязать к каждой кнопке нужное вам действие. Кнопки упрощают взаимодействие пользователя с вашим чат-ботом, что оказывает положительный эффект для взаимодействия с вашими клиентами, которые теперь смогут быстрее получить нужную информацию или сделать заказ.Вы можете добавить кнопки к любому ответу в диалоге в вашем сообществе с помощью нашего конструктора чат-ботов — https://vk.cc/8tLWI3
Примеры использования кнопок
Чат-бот сообщества SMM Hunter связывает заказчиков и исполнителей между собой.
В сообществе есть стартовая кнопка «Начать» — служит для разрешения отправки пользователям сообщения и пробуждения чат-бота.
После нажатия на кнопку «Начать», появляется меню с кнопками для выбора роли (рисунок 1).
При выборе роли «заказчик», открывается меню с кнопками для заказчика, где он может создать, просмотреть и удалить задание, а также просмотреть информацию о боте (рисунок 2).
При выборе роли «исполнитель», открывается меню с кнопками для исполнителя, где он может просмотреть задания и откликнуться на них, посмотреть и отредактировать свой профиль, а также просмотреть информацию о боте (рисунок 3).
Рисунок 1. Чат-бот с кнопками SMM
Рисунок 2. Чат-бот с кнопками SMM
Рисунок 3. Чат-бот с кнопками SMM
2. Comedy Club
Чат-бот сообщества Comedy рассылает свой контент пользователям.
В сообществе есть стартовая кнопка «Начать».
Стартовая кнопка
Далее открывается главное меню, где пользователь может выбрать, что он хочет посмотреть (рисунок 4 ниже).
В текущем сезоне открываются кнопки для выбора выпуска (рисунок 5 ниже). При нажатии на кнопку присылается ссылка с видео на выпуск.
Рисунок 4. Чат-бот с кнопками Comedy Club
Рисунок 5. Чат-бот с кнопками Comedy Club
3. Чатмашина
Чат-бот был разработан в качестве входной точки первичного обращения клиентов.
Задача чат-бота — в автоматическом режиме опросить клиента и выяснить какие функции клиент хочет заложить в своего чат-бота, в зависимости от функций рассчитать примерную стоимость заказа.
В сообществе есть стартовая кнопка «Начать»
Стартовая кнопка
Далее открывается меню с кнопками выбора «Соединить с менеджером» или «Оценить разработку бота».
При нажатии на «Оценить разработку бота», бот проводит опрос с двумя кнопками выбора: нужна какая-то функция или нет (смотрите рисунки 6-12).
Рисунок 6. Чат-бот с кнопками «Чатмашина»
Рисунок 7. Чат-бот с кнопками «Чатмашина «
Рисунок 8. Чат-бот с кнопками «Чатмашина «
Рисунок 9. Чат-бот с кнопками «Чатмашина «
Рисунок 10. Чат-бот с кнопками «Чатмашина «
Рисунок 11. Чат-бот с кнопками «Чатмашина «
Рисунок 12. Чат-бот с кнопками «Чатмашина «
4. Сбербанк
Бот сбербанка рассылает информацию о своих услугах и отправляет стикеры.
Сейчас в боте одна кнопка «Поиск отделения и банкоматов». При нажатии бот предлагает скинуть свою геопозицию, после чего высылает адрес самого ближайшего отделения и банкомата.
Чат-бот с кнопками Сбербанк
5. Durex
Чат-бот рекламирует свою продукцию, проводит опросы и отправляет стикеры пользователям.
В последней акции у чат-бота есть две кнопки «Поделиться» и «Загрузить чек».
Если нажимаешь «Поделиться», то на твоей стене оказывается рекламная запись о стикерах от компании Durex.
Если нажимаешь «Загрузить чек», то бот предлагает отправить фото чека с покупкой продукции Durex, затем отправляет оставшиеся стикеры.
Чат-бот с кнопками Durex
6. Chatgun — конструктор чат-ботов и рассылок для Вконтакте
Чат-бот в сообществе Chatgun был создан для демонстрации работы бота, разработанного с помощью приложения «Конструктор чат-ботов и рассылок».
- Рассказывает как подключить приложение к группе.
- Описывает новые возможности конструктора.
- Отправляет ссылку на техподдержку пользователей.
Чат-бот с кнопками Chatgun
7. Бот максим — развлекательное сообщество
Бот озвучивает написанный текст.
С помощью кнопок можно выбрать голос озвучки, наложить на него эффект, выбрать бит для озвучки; отправить анонимку и настроить конфигурацию.
Чат-бот Максим с кнопками
Источник: spark.ru
Появились callback-кнопки для чат-ботов ВКонтакте
В чат-ботах ВКонтакте стали доступны callback-кнопки. Благодаря новым кнопкам, пользователю не нужно писать боту сообщение — достаточно одного нажатия. Бот будет сам редактировать свою реплику и клавиатуру для следующего шага, предлагать новые inline-кнопки и показывать исчезающие уведомления, а также открывать ссылки и мини-приложения.
Выглядят callback-кнопки так же, как обычные, — для них доступны те же стили оформления. Разбираемся, как они работают и как их использовать.
Реклама: 2VtzqvSTRwm
Как работают Callback-кнопки в чат-боте ВК
Callback-кнопки позволяют боту получать уведомление о нажатиях на кнопки без отправки сообщения от пользователя, после чего выполнять необходимое действие: редактировать сообщение, показывать текстовую информацию, отправлять новую клавиатуру, открывать ссылку и прочее.
Как использовать:
- Реализация основного меню бота: после нажатия на callback-кнопку на клавиатуре бот обновляет её, выполняя переход на уровень глубже по вложенности меню. При этом пользователю не нужно отправлять боту дополнительное сообщение.
- Редактирование сообщения: пользователь нажимает на callback-кнопку в inline-клавиатуре из сообщения, выбирая категорию блюда в меню, — бот редактирует сообщение, предлагая блюда из этой категории. Пользователь при этом не отправляет боту сообщение.
- Отправка результата действия: пользователь нажимает на callback-кнопку, например «Пополнить баланс», которая совершает определённое действие. После его успешного выполнения бот показывает пользователю информацию «Баланс пополнен» при помощи snackbar. Отправка сообщения при этом не требуется.
Внешний вид. Callback-кнопки выглядят так же, как и обычные кнопки, и поддерживают все стили. После нажатия на кнопку на время выполнения действия возникает индикатор загрузки.
Сравнение онлайн-курсов
Перед тем, как купить любой курс, сравните условия от разных школ — стоимость обучения, скидки, длительность, есть ли программа трудоустройства. Подобрать онлайн-курс >>
Источник: postium.ru