Бот Телеграмм меню с кнопками

Пишем Telegram бота на Python

Часть 2: Подготовка к написанию кода

Как уже упоминалось в заголовке, мы будем создавать бота на Python. В этой статье мы рассмотрим использование библиотеки PyTelegramBotAPI (Telebot). Если вы еще не установили Python, то необходимо сделать это. В терминале Linux для установки Python нужно ввести…

sudo apt-get install python python-pip

Если вы используете операционную систему Windows, вам нужно скачать Python с официального сайта.

Затем, в случае использования Linux, откройте терминал, а для Windows — командную строку, и введите…

pip install pytelegrambotapi
Теперь можно приступить к написанию кода, так как все готово.

Часть 3: Получаем сообщения и говорим «Привет»

Откройте свой предпочитаемый текстовый редактор и начните писать код для создания бота! Вначале необходимо импортировать нашу библиотеку и подключить токен бота:

Как сделать меню для Телеграм Бота на Python


import telebot; bot = telebot.TeleBot(‘%ваш токен%’);

Теперь создадим функцию для получения текстовых сообщений:

В данном фрагменте кода мы определили слушателя для текстовых сообщений и функцию для их обработки. В параметре content_types можно указать несколько значений, а не только одно, например:

Код будет реагировать на текстовые сообщения, документы и аудио. Дополнительную информацию можно найти в официальной документации.

Теперь добавим некоторый функционал в наш метод: если пользователь отправит сообщение «Привет», то мы отправим ему ответ «Привет, чем я могу вам помочь?», а если пользователь отправит команду «/help», то мы попросим его отправить сообщение «Привет»:

if message.text == «Привет»: bot.send_message(message.from_user.id, «Привет, чем я могу тебе помочь?») elif message.text == «/help»: bot.send_message(message.from_user.id, «Напиши привет») else: bot.send_message(message.from_user.id, «Я тебя не понимаю. Напиши /help.»)

По-моему, этот фрагмент кода не нуждается в комментариях. Теперь вам нужно добавить всего одну строку кода (вне всех методов) в наш скрипт

bot.polling(none_stop=True, interval=0)

Теперь наш бот будет постоянно проверять у сервера Telegram, есть ли новые сообщения для нашего бота. Если мы отправим сообщение нашему боту, Telegram передаст его боту. Сохраните файл, и запустите его в консоли.

Еще по теме:  Как выключить камеру в видеочате в Телеграмме

python bot.py

Где bot.py – имя нашего файла.

Теперь вы можете отправить сообщение боту и посмотреть на результат.

Часть 4: Кнопки и ветки сообщений

Отправка сообщений, конечно, весело, но веселее общаться с пользователем, задавая ему вопросы и получая на них ответы. Давайте предположим, что теперь наш бот будет последовательно спрашивать у пользователя его имя, фамилию и возраст. Для этого мы будем использовать метод register_next_step_handler бота:

Таким образом, мы сохранили данные пользователя. В этом примере показана очень упрощенная версия сохранения данных, на самом деле данные и состояния пользователя должны храниться в базе данных. Однако, сегодня мы работаем с ботом, а не с базами данных. Последнее дополнение — запросим у пользователя подтверждение того, что все данные введены правильно. Для этого немного изменяем код метода get_age, добавив кнопки:

def get_age(message): global age; while age == 0: #проверяем что возраст изменился try: age = int(message.text) #проверяем, что возраст введен корректно except Exception: bot.send_message(message.from_user.id, ‘Цифрами, пожалуйста’); keyboard = types.InlineKeyboardMarkup(); #наша клавиатура key_yes = types.InlineKeyboardButton(text=’Да’, callback_data=’yes’); #кнопка «Да» keyboard.add(key_yes); #добавляем кнопку в клавиатуру key_no= types.InlineKeyboardButton(text=’Нет’, callback_data=’no’); keyboard.add(key_no); question = ‘Тебе ‘+str(age)+’ лет, тебя зовут ‘+name+’ ‘+surname+’?’; bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)

Теперь наш бот отправляет клавиатуру, но если пользователь на нее нажмет, то ничего не произойдет. Это происходит потому, что мы не написали метод-обработчик. Давайте создадим его:

Теперь нам нужно добавить одну строку в начало файла:

from telebot import types

Теперь сохраняем и запускаем нашего бота.

Еще один альтернативный вариант создания бота Telegram на Python (Видео инструкция)

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

Встроенные кнопки в Telegram Bot API — pyTelegramBotAPI

Добрый день уважаемые читатели, давайте рассмотрим, какие основные типы встроенных кнопок предлагают чат-боты telegram и в чем их особенности. Статья будет полезна всем, кто хочет разобраться в возможностях взаимодействия с пользователями telegram в версии bot API 2.0.

Для обзора возможностей нам понадобится установить 3 целых 2 десятых Python`a и пару ложек pyTelegramBotAPI. Особенности настройки и регистрации чат-бота мы рассматривать не будем, т.к. есть множество статей на эту тему.

И так, что же такое встроенные кнопки(клавиатура) в мессенджере Telegram? Это кнопки которые выводятся во внутренней области чата и привязываются к конкретному сообщению. Они жестко связаны с сообщением(если удалить сообщение, внутренние кнопки так же удаляются вместе с ним.). Они дают возможность динамически видоизменять его.

Еще по теме:  Анонимная отправка сообщения в ТГ

В данный момент есть три типа встроенных кнопок:

URL-кнопки

Для создания кнопки используется тип InlineKeyboardMarkup, давайте создадим кнопку «Наш сайт»:

Тут название говорит само за себя, это тип кнопок предназначен для перенаправления пользователя по ссылке, с соответствующим предупреждением. Кнопка имеет соответствующий ярлычок в правом верхнем углу, чтобы дать понять пользователю, что это ссылка.

Switch-кнопки

Для того что-бы создать подобный переключатель, необходимо указать аргумент switch_inline_query либо пустой, либо с каким-либо текстом.

Теперь, если мы нажмем на кнопку и выберем чат, вот что получится:
Шаг 1:

Нажимаем на кнопку.

Шаг 2:

Выбираем чат.

Шаг 3:

Активировался встроенный inline-режим.

Callback-кнопки

Ну и наконец самое интересное — это кнопки с обратной связью: позволяют динамически обновлять сообщение/встроенные кнопки (не засоряя при этом ленту), а так же отображать уведомление в верху чат-бота или модальном окне.

Например, их можно использовать для просмотра длинного сообщения, аналогично пагинации страниц на сайтах, или например сделать календарь. Я не стану изобретать велосипед, а через поиск по GitHub, найду готовую библиотеку calendar-telegram. Выполнив указанные инструкции, получаем готовый календарь, который можно динамически изменять по нажатию на соответствующие кнопки:

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

bot.answer_callback_query(call.id, text=»Дата выбрана»)

(Пример в десктопной версии)

(Пример в мобильной версии)

Если изменить show_alert на True, то мы получим модальное окно:

bot.answer_callback_query(call.id, show_alert=True, text=»Дата выбрана»)

Заключение

По последним данным, в нашумевшем мессенджере Telegram регистрируются больше 600к пользователей ежедневно. Именно поэтому важно подхватить тренд и разобраться с его основными особенностями, т.к. различные методы взаимодействия с ботами существенно облегчает жизнь разработчиков и пользователей.

Cпасибо за Ваш интерес к данной теме.

  • telegram bots
  • telegram
  • telegram api

Источник: h.amazingsoftworks.com

Клавиатура для бота телеграм

Я уже писал о том, как сделать бота для телеграм на PHP и Java. При этом наш бот может как сам отправлять сообщения, так и реагировать на команды. В последнем случае команды – это просто текстовые сообщения, что не всегда удобно. Гораздо чаще удобнее просто ткнуть кнопку с командой (или для перехода в меню). Сделать эти кнопки несложно.

Еще по теме:  Озон ТГ премиум баллы

Итак, подразумевается, что вы уже ознакомились с данной заметкой и создали своего первого (ну или не первого) бота для телеграм на PHP. Теперь требуется сделать этого бота более комфортным для работы/общения – с помощью клавиатуры.

  • InlineKeyboardMarkup
  • ReplyKeyboardMarkup
  • ReplyKeyboardRemove
  • ForceReply

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

function sendMessage($tg_chat_id, $message, $keyboard = «») < global $token; $response = array( ‘chat_id’ =>$tg_chat_id, ‘text’ => $message, ‘parse_mode’ => «HTML» ); if ($keyboard) < $arr = array(‘reply_markup’ =>json_encode($keyboard, TRUE)); $response = array_merge($response, $arr); > $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/sendMessage’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_close($ch); >

На вход принимаем чат ид, сообщение и клавиатуру (последний параметр необязателен). В самом методе создаем массив из значений, если есть, то суем туда и клавиатуру, предварительно переведенную в формат json.

А теперь само создание клавиатуры с кнопками «да» и «нет»:

$button_yes = array(‘text’ => ‘Да’, ‘callback_data’ => ‘/yes’); $button_no = array(‘text’ => ‘Нет’, ‘callback_data’ => ‘/no’); $keyboard = array(‘inline_keyboard’ => array(array($button_yes, $button_no))); sendMessage($chat_id, «Вы любите пиццу?», $keyboard);

Тут все просто: создаем кнопки, создаем из них клавиатуру и отправляем вместе с вопросом. Вы спросите, а что за ссылки «/yes» «/no»? А это так называемые колбэки – в данном случае под этим термином подразумеваются те данные, которые отправляются обратно при нажатии соответствующей кнопки. Их надо отлавливать и обрабатывать. Например, так

$postData = file_get_contents(‘php://input’); $data = json_decode($postData, true); $inline_id = $data[«callback_query»][«message»][«chat»][«id»]; $callback = $data[«callback_query»][«data»];

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

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

заметки, php, telegram

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

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