Для использования дополнительных возможностей мессенджера нужно знать, как сделать кнопку в «Телеграме». Такие интерактивные элементы привязываются к чату и помогают видоизменять его в режиме онлайн. При удалении сообщения встроенные клавиши исчезают вместе с ним.
Какие кнопки можно добавить в Telegram
Интерактивные элементы классифицируются с учетом их функций.
URL-кнопки
Это самый распространенный вид клавиш в «Телеграме». При нажатии пользователь видит уведомление о переходе на сторонний сайт. После подтверждения действия открывается прикрепленная площадка. Так, сообщение содержит выдержку из объемной статьи со ссылкой на страницу с полной версией.
Switch-кнопки
Механизм, как сделать кнопку в «Телеграме», у таких элементов сложнее, чем у предыдущих.
Switch используются для перенаправления в другие беседы и группы «Телеграма», например для перехода в чат с ботом интернет-магазина.
Можно самостоятельно найти виртуального помощника и отправить ему сообщение, однако клавиши упрощают процесс.
Кнопка меню в Телеграм боте.
Callback-кнопки
Такому компоненту можно присвоить любую функцию. При нажатии выполняется произвольное действие. Функциональность кнопки с обратной связью зависит от фантазии разработчика.
Некоторые используют их для решения рутинных задач, например для автозамены текста в сообщении. Однако можно выполнять и более сложные действия, например перемещение по длинной публикации. Для добавления такой кнопки необязательно обладать навыками программиста.
Кнопки с реакциями
Эти элементы способны заменять классические опросы, особенно если вариантов ответа немного. Каждый пользователь встречался с подобными клавишами.
Чаще всего это «Лайк», «Дизлайк» и «Поделиться», однако бывают и другие варианты. Например, популярны реакции в виде фраз или эмодзи. После выбора пользователь видит количество людей, нажавших клавишу на канале.
Также читайте: Аккаунт в Telegram для ведения бизнеса — что это и причины, по которым стоит завести, способы заработка на канале
Способы установить активные кнопки
С ним работают так:
Инструкция по использованию
URL-клавишу привязывают так:
- Открывают меню созданного ранее виртуального помощника. Определяют вариант «Сделать публикацию».
- Выбирают группу, куда будет отправлен пост. Набирают текст, нажимают на значок самолета. Публикация подготовлена, но не размещена.
- Активируют функцию добавления адресных клавиш. Просматривают полученную инструкцию. Пишут название. Через тире указывают ссылку на прикрепляемую страницу. При необходимости добавить несколько интерактивных элементов вводят их описания в одну строку с использованием разделителей «|».
- Поочередно нажимают клавиши «Отправить», «Продолжить», «Опубликовать».
К реакциям можно привязать надписи или эмодзи, перечисляя их через «/». Отправляют готовое сообщение в чат с ботом. Подобным способом подключают и другие элементы.
Обзор
Источник: telegramguru.info
Создание Telegram бота на PHP #3: примеры отправки сообщений с кнопками в Telegram
В новом уроке мы с вами рассмотрим отправку базовых запросов в Telegram. Я покажу вам как отправлять простые текстовые сообщения в Telegram, как отправлять кнопки и дополнительные клавиатуры.
Всю информацию по параметрам запросов мы будем брать из официальной документации Telegram
https://core.telegram.org/bots/api/
Все ответы от Telegram приходят в виде JSON строки. Для удобного отображения массива ответа в браузере, советую вам установить специальное расширение для браузера, которое называется JSON Viewer
- С помощью параметра text вы можете передать текст кнопки
- параметр url указывает ссылку, если вам нужно сделать кнопку для перехода на внешний ресурс
- параметр callback_data указывает строку которая будет возвращена после нажатия на кнопку. Данную строку используют как команду.
Массив для кнопок имеет сложную многоуровневую систему. Первый уровень отвечает за общую запись параметров, второй уровень отвечает за ряд кнопок, третий уровень отвечает за параметры кнопки.
Таким образом, для создания 2 кнопок в одном ряду, мы будем использовать следующий код
. ‘reply_markup’ => json_encode(array( ‘inline_keyboard’ => array( array( array( ‘text’ => ‘Button 1’, ‘callback_data’ => ‘test_2’, ), array( ‘text’ => ‘Button 2’, ‘callback_data’ => ‘test_2’, ), ) ), )), .
Для создания 2 рядов по 2 кнопки используйте код
. ‘reply_markup’ => json_encode(array( ‘inline_keyboard’ => array( array( array( ‘text’ => ‘Button 1’, ‘callback_data’ => ‘test_2’, ), array( ‘text’ => ‘Button 2’, ‘callback_data’ => ‘test_2’, ), ), array( array( ‘text’ => ‘Button 3’, ‘callback_data’ => ‘test_3’, ), array( ‘text’ => ‘Button 4’, ‘callback_data’ => ‘test_4’, ), ) ), )), .
И для создания одной кнопки в первом ряду и 2 — во втором, используйте следующий код.
. ‘reply_markup’ => json_encode(array( ‘inline_keyboard’ => array( array( array( ‘text’ => ‘Button 2’, ‘callback_data’ => ‘test_2’, ), ), array( array( ‘text’ => ‘Button 3’, ‘callback_data’ => ‘test_3’, ), array( ‘text’ => ‘Button 4’, ‘callback_data’ => ‘test_4’, ), ) ), )), .
Надеюсь, я смог объяснить данную тему доступно, если у вас будут вопросы, пишите их в нашем Telegram канале.
Отправка клавиатуры в чат
Аналогичные параметры имеет и массив для отправки клавиатуры в чат. Для создания клавиатуры пропишем следующий код.
. ‘reply_markup’ => json_encode(array( ‘keyboard’ => array( array( array( ‘text’ => ‘Тестовая кнопка 1’, ‘url’ => ‘YOUR BUTTON URL’, ), array( ‘text’ => ‘Тестовая кнопка 2’, ‘url’ => ‘YOUR BUTTON URL’, ), )), ‘one_time_keyboard’ => TRUE, ‘resize_keyboard’ => TRUE, )), .
Структура массивом для кнопок та же, но только есть отличие в названиях и количестве параметров.
Ключ inline_keyboard заменяется на keyboard.
А так же для клавиатуры добавляются 2 дополнительных параметра:
- one_time_keyboard — скрыть клавиатуру, как только она была использована. Клавиатура по-прежнему будет доступна, но клиенты будут автоматически отображать обычную, буквенную клавиатуру в чате — пользователь может нажать специальную кнопку в поле ввода, чтобы снова увидеть пользовательскую клавиатуру. Значение по умолчанию равно false.
- resize_keyboard — изменяет размер клавиатуры по вертикали для оптимальной подгонки (например, уменьшить клавиатуру, если есть только два ряда кнопок). По умолчанию установлено значение false, и в этом случае пользовательская клавиатура всегда имеет ту же высоту, что и стандартная клавиатура приложения.
- В новом уроке мы с вами разобрали самый популярный метод для работы с Телеграм ботами — sendMessage. Данный метод позволяет отправлять текстовые сообщения с привязанными кнопками и клавиатурами.
- Научились удалять сообщения
- Разобрали какие бывают типы кнопок и научились создавать массивы для гибкой структуры вывода дополнительных клавиатур и кнопок.
В следующем уроке, я вам покажу как отправлять файлы и изображения в чат.
Дополнения к записи от 04.11.2022
Дополнение от доброго комментатора с сайта Habr, с ником FanatPHP — https://habr.com/ru/users/FanatPHP/
Пользователь предложил добавить вспомогательную функцию для работы с Curl.
function curl($url, $data = [], $method = ‘GET’, $options = []) < $default_options = [ CURLOPT_RETURNTRANSFER =>true, CURLOPT_HEADER => false, CURLOPT_SSL_VERIFYPEER => false, ]; if ($method === ‘GET’) < $url .= (strpos($url, ‘?’) === false) ? ‘?’ : ‘ $url .= http_build_query($data); >if ($method === ‘POST’) < $options[CURLOPT_POSTFIELDS] = http_build_query($data); >if ($method === ‘JSON’) < $options[CURLOPT_POSTFIELDS] = json_encode($data); $options[CURLOPT_HTTPHEADER][] = ‘Content-Type:application/json’; >$ch = curl_init($url); curl_setopt_array($ch, array_replace($default_options, $options)); $result = curl_exec($ch); if ($result === false) < throw new ErrorException(«Curl error: «.curl_error($ch), curl_errno($ch)); >curl_close($ch); return $result; >
$token = «5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU»; $url = «https://api.telegram.org/bot$token/sendMessage»; $getQuery = array( «chat_id» => 1424625511, «text» => «Новое сообщение из формы», «parse_mode» => «html» ); echo curl($url, $getQuery);
На этом всё!
Больше интересных статей в нашей группе — https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи — https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале — https://www.youtube.com/c/ProgTime
Наши планы
- Написание материала для курса по разработке ботов на Telegram
- Разработка универсального парсера на PHP
Поддержите мой сайт!
Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube
Источник: prog-time.ru