Как в Телеграмме сделать кнопку выбора

Изучая тему «Создание Telegram бота на PHP», мы уже научились делать так, чтобы в ответ на определённое сообщение, или команду, бот отправлял в чат текстовые сообщения, файлы, картинки и видео.

Но для более лучшего взаимодействия с пользователем, иногда лучше разработать меню, или кнопки. Так человеку не придётся запоминать и набирать команды для бота вручную. Ему будет достаточно выбрать тот вариант, который его интересует и кликнуть по кнопке, или по нужному пункту меню.

В этом уроке мы рассмотрим пример создания кнопок в Telegram боте на PHP и объединим весь тот код, который изучили ранее. То есть, мы научим нашего бота отправлять пользователю текстовое сообщение, файл, картинку, или видео, если он нажмет на ту или иную кнопку.

Создание меню из кнопок в Telegram

Для создания кнопочного меню в Телеграм боте можно написать следующий код:

// кнопки меню (2 ряди по 2 кнопки) $keyboard = [ [ [‘text’ => ‘Кнопка 1’], [‘text’ => ‘Кнопка 2’], ], [ [‘text’ => ‘Кнопка 3’], [‘text’ => ‘Кнопка 4’], ] ]; $reply_markup = json_encode([«keyboard»=>$keyboard,»resize_keyboard»=>true]); // Відповідь на текстове повідомлення // Отримуємо текст, який відправив користувач Телеграм боту в месенджері if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Виводимо кнопки в Telegram, якщо користувач ввів команду /menu if (mb_stripos( $text, ‘/start’) !== false) < sendTelegram( ‘sendMessage’, [‘chat_id’=>$data[‘message’][‘chat’][‘id’], ‘text’=>’Це кнопкове Меню бота’, ‘reply_markup’=>$reply_markup ] ); exit(); > > ?>

Здесь, мы создаём кнопки, которые нужно показать пользователю в Телеграм, этим фрагментом кода:

Как сделать кликабельную кнопку в телеграм


// кнопки меню (2 ряди по 2 кнопки) $keyboard = [ [ [‘text’ => ‘Кнопка 1’], [‘text’ => ‘Кнопка 2’], ], [ [‘text’ => ‘Кнопка 3’], [‘text’ => ‘Кнопка 4’], ] ]; $reply_markup = json_encode([«keyboard»=>$keyboard,»resize_keyboard»=>true]);

А отправляем эти кнопки Телеграм боту, вот этой строкой кода:

‘reply_markup’=>$reply_markup

Реакция на нажатие кнопок Телеграм бота

Теперь давайте сделаем так, чтобы если человек нажмёт на кнопку, то в ответ ему приходило какое-нибудь сообщение. Например, «Вы нажали на кнопку 1», «Вы нажали на кнопку 2» и т.д.

Когда человек нажимает на кнопку №1, то боту отправляется сообщение «Кнопка 1». Соответственно, мы можем отследить текст этого сообщения и в ответ прислать свой текст (это мы уже проходили в уроке №2 «Отправка и получение сообщений»).

Еще по теме:  Видят ли отложенные сообщения в Телеграмме

Пример кода

if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Виводимо кнопки в Telegram, якщо користувач ввів команду /menu if (mb_stripos( $text, ‘/start’) !== false) < sendTelegram( ‘sendMessage’, [‘chat_id’=>$data[‘message’][‘chat’][‘id’], ‘text’=>’Це кнопкове Меню бота’, ‘reply_markup’=>$reply_markup ] ); exit(); > else if (mb_stripos( $text, ‘Кнопка 1’) !== false) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Ви натиснули кнопку №1’ ) ); exit(); > >

То есть мы взяли код из нашего урока по отправке и получению сообщений Телеграм боту (см. Урок №2) и подставили его в конструкцию If…Then…Else If.

Таким же образом давайте сделаем с получением картинок, файлов и видео. Но предварительно давайте поменяем название наших кнопок на «Send text», «Send picture», «Send file» и «Send video». Так будет намного понятнее для чего предназначена каждая из этих кнопок.

Итоговый код Телеграм бота

Теперь, если пользователь нажмёт на соответствующую кнопку, то от Telegram бота он получит текстовое сообщение, файл, картинку, или видео.

То же самое будет происходить, если человек отправит текстовые сообщения боту в чате: «Send text», «Send picture», «Send file», «Send video».

Примечание.

Питоном по телеграму! Пишем пять простых Telegram-ботов на Python

В этой статье мы реали­зуем прос­той, но край­не полез­ный про­ект на Python — бота для Telegram. Боты — это неболь­шие скрип­ты, которые могут вза­имо­дей­ство­вать с API, что­бы получать сооб­щения от поль­зовате­ля и отправ­лять информа­цию в раз­ные чаты и каналы.

Python для новичков

Ес­ли ты сов­сем не ори­енти­руешь­ся в Python, то отличным началом будет проч­тение трех ввод­ных ста­тей, которые я пуб­ликовал в «Хакере» этим летом, либо посеще­ние кур­са «Python для нович­ков», который я нач­ну вес­ти для читате­лей «Хакера» уже сов­сем ско­ро — 30 нояб­ря.

  • Python с абсо­лют­ного нуля. Учим­ся кодить без скуч­ных кни­жек
  • Python с абсо­лют­ного нуля. Учим­ся работать со стро­ками, фай­лами и интерне­том
  • Python с абсо­лют­ного нуля. Работа­ем с ОС, изу­чаем регуляр­ные выраже­ния и фун­кции

Что­бы соз­дать бота, нам нуж­но дать ему наз­вание, адрес и получить токен — стро­ку, которая будет однознач­но иден­тифици­ровать нашего бота для сер­веров Telegram. Зай­дем в Telegram под сво­им акка­унтом и откро­ем «отца всех ботов», BotFather.

Еще по теме:  998977338302 найти в Телеграмме

Жмем кноп­ку «Запус­тить» (или отпра­вим / start ), в ответ BotFather приш­лет нам спи­сок дос­тупных команд:

  • / newbot — соз­дать нового бота;
  • / mybots — редак­тировать ваших ботов;
  • / setname — сме­нить имя бота;
  • / setdescription — изме­нить опи­сание бота;
  • / setabouttext — изме­нить информа­цию о боте;
  • / setuserpic — изме­нить фото ава­тар­ки бота;
  • / setcommands — изме­нить спи­сок команд бота;
  • / deletebot — уда­лить бота.

От­пра­вим бате‑боту коман­ду / newbot , что­бы соз­дать нового бота. В ответ он поп­росит ввес­ти имя будуще­го бота, его мож­но писать на рус­ском. Пос­ле вво­да име­ни нуж­но будет отпра­вить адрес бота, при­чем он дол­жен закан­чивать­ся на сло­во bot. Нап­ример, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather нач­нет изви­нять­ся и про­сить при­думать что‑нибудь дру­гое.

Ког­да мы наконец най­дем сво­бод­ный и кра­сивый адрес для нашего бота, в ответ получим сооб­щение, в котором пос­ле фра­зы Use this token to access the HTTP API будет написа­на стро­ка из букв и цифр — это и есть необ­ходимый нам токен. Сох­раним ее где‑нибудь на сво­ем компь­юте­ре, что­бы потом исполь­зовать в скрип­те бота.

Для вза­имо­дей­ствия с Telegram API есть нес­коль­ко готовых модулей. Самый прос­той из них — Telebot. Что­бы уста­новить его, набери

pip install pytelegrambotapi

В Linux, воз­можно, понадо­бит­ся написать pip3 вмес­то pip , что­бы ука­зать, что мы хотим работать с треть­ей вер­сией Python.

Эхо-бот

Для начала реали­зуем так называ­емо­го эхо‑бота. Он будет получать от поль­зовате­ля тек­сто­вое сооб­щение и воз­вра­щать его.

Источник: xakep.ru

Как в телеграмме сделать кнопку выбора

Шаг 2: Также можно добавить в это сообщение файл. Для этого нажимаем на плюс в правом верхнем углу, выбираем файл. Под файлом можно добавить кнопки.

Внимание! Максимальный размер файла — 10 МВ.
Шаг 3: Нажимаем на элемент «Файл», добавляем файл, который позволяет принимать telegram.

Как настроить сообщение по умолчанию.

Шаг 2: Сохраняем

Шаг 2: Заходим в него и пишем текст. Так работает ссылка на сообщение. Если нужно указать в сообщении ссылку, но без отображения превью, активируем функцию «Скрыть превью ссылок».

Шаг 1: Заходим в конструктор. Создаем и привязываем бота к Чатформе. Как это сделать смотрите здесь.
Настраиваем стартовое сообщение. Стартовое сообщение это то, что пользователи получат от бота в первый раз, когда нажали на кнопку «Начать» или же «Запустить бота».

Сообщение по умолчанию это то, что бот будет отвечать пользователю, если не понимает его. То есть если пользователь написал какую-то непонятную фразу или слово, бот отвечает этим сообщением.

Еще по теме:  Как закреплять больше 5 чатов в Телеграмме

Шаг 1: Пишем сообщение.

Как сделать так, чтобы бот высылал пользователям текстовое сообщение и файлы.
Шаг 1: В разделе сообщения нажимаем на плюс и выбираем простое сообщение.

Шаг 3: Сохраняем и идем в стартовое. Добавляем кнопки в нашего бота. В правом верхнем углу нажимаем на плюс и выбираем элемент кнопки.

Шаг 4: Пишем текст перед кнопками. В стартовом сообщении вы можете создать 3 вида кнопок.
1 — ссылка на сообщение. Выбираем тип кнопки — ссылка на сообщение. Сохраняем.

2 — внешняя ссылка. Выбираем тип кнопки — внешняя ссылка, добавляем ссылку, которую мы хотим добавить в данную кнопку. Ссылку нужно добавить обязательно http или https. Нажимаем Добавить.

3 — кнопка вызова. Выбираем тип кнопки — кнопка вызова. Указать название контакта, который будет отправляться пользователю. А также указать телефон, по которому пользователь может связаться с данным контактом.

Есть еще один вариант кнопки — корзина. Перейдя по этой кнопке, пользователь сможет посмотреть, что находится в его корзине.
Ни в коем случае нельзя ставить кнопку на корзину в стартовом сообщении!

Для этих кнопок в боте Telegram можно выбрать размещение: по 2 кнопки в ряду или по 1.

Создаём меню в сообщении по умолчанию.

Эти кнопки будут располагаться под полем ввода текста у пользователя. Можно добавить определенное количество рядов и кнопок в каждом. Кнопки динамического меню могут вести только на внутренние сообщения в боте. Не рекомендуется в сообщении по умолчанию ставить кнопку на стартовое сообщение, если в вашем боте настроено постоянное меню.
Нажимаем добавить, сохраняем бота.

Поздравляем! Мы с вами рассмотрели как добавить текстовые элементы, файлы, кнопки, а также как работают стартовое сообщение и сообщение по умолчанию.

Как создать меню в боте Telegram.

Шаг 1: Переходим в BotFather и отправляем ему команду /mybots.Выбираем нужный бот, нажимаем EditCommands

Шаг 2: Получаем сообщение от бота с рекомендациями:

Шаг 3: Отправляем боту перечисление команд

Шаг 4: Добавляем в Конструкторе под сообщения или формы бота соответствующие AI — теги и сохраняем изменения в боте:

Шаг 5: Открываем бот на мобильном, видим появившееся меню, разворачиваем, можем нажать на любую из команд

Источник: learn.chatforma.com

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