Что такое webhook Telegram

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

Всего у нас будет 2 файла: webhook.php, который содержит логику работы, и tg.class.php, который содержит методы для отправки сообщений и ответа на запросы.

Для того, что бы телеграм знаю куда стучаться при наступлении события сообщим ему о нашем обработчике открыв в браузере страницу с адресом, обратите внимание, что обязательно нужен SSL: https://api.telegram.org/botAPI_TOKEN_TG/setWebhook?url=https://YOUR_DOMAIN/webhook.php

webhook.php

sendChatAction($tg_id); $sms_rev=»; switch($message_text) < case ‘/start’: $sms_rev = ‘Здравствуйте, Вас приветсвует Простейший Бот Telegram! ‘; break; case ‘/help’: $sms_rev = ‘Я могу выполнить следующюю функцию: /rev — переворачиваею строку наоборот. ‘; break; case ‘/rev’: $sms_rev = strrev($message_text); break; default: $sms_rev =’Команда не распознана’; break; >$tg->send($tg_id, $sms_rev, $rez_kb); exit(‘ok’); // говорим телеге, что все окей ?>

tg.class.php

token = $token; > public function send($id, $message, $kb) < $data = array( ‘chat_id’ =>$id, ‘text’ => $message, ‘parse_mode’ => ‘HTML’, ‘disable_web_page_preview’=>true, ‘reply_markup’ => json_encode(array(‘inline_keyboard’ => $kb)) ); $this->request(‘sendMessage’, $data); > public function editMessageText($id, $m_id, $m_text, $kb=») < $data=array( ‘chat_id’ =>$id, ‘message_id’ => $m_id, ‘parse_mode’ => ‘HTML’, ‘text’ => $m_text ); if($kb) $data[‘reply_markup’]=json_encode(array(‘inline_keyboard’ => $kb)); $this->request(‘editMessageText’, $data); > public function editMessageReplyMarkup($id, $m_id, $kb) < $data=array( ‘chat_id’ =>$id, ‘message_id’ => $m_id, ‘reply_markup’ => json_encode(array(‘inline_keyboard’ => $kb)) ); $this->request(‘editMessageReplyMarkup’, $data); > public function answerCallbackQuery($cb_id, $message) < $data = array( ‘callback_query_id’ =>$cb_id, ‘text’ => $message ); $this->request(‘answerCallbackQuery’, $data); > public function sendChatAction($id,$action=’typing’) < $data = array( ‘chat_id’ =>$id, ‘action’ => $action ); $this->request(‘sendChatAction’, $data); > public function request($method, $data = array()) < $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, ‘https://api.telegram.org/bot’ . $this->token . ‘/’ . $method); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, ‘POST’); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $out = json_decode(curl_exec($curl), true); curl_close($curl); return $out; > >

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

Разберем отдельно по функциям

Конструктор

class TG < public $token = »; public function __construct($token) < $this->token = $token; >

Telegram bot using webhooks (python)

Все крайне просто, в конструкторе сохраняем во внутреннюю переменную Api ключ, который получили от BotFather бота телеграмма.

Telegram bot with webhooks | PyTelegramBotAPI(Telebot) + PythonAnywhere

Функция отправки запроса в телегу

public function request($method, $data = array()) < $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, ‘https://api.telegram.org/bot’ . $this->token . ‘/’ . $method); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, ‘POST’); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $out = json_decode(curl_exec($curl), true); curl_close($curl); return $out; >

Отправляем запрос вида https://api.telegram.org/botAPI_KEY/ИМЯ_МЕТОДА по протоколу post через curl.

Функция отправки сообщения — sendMessage

public function send($id, $message, $kb) < $data = array( ‘chat_id’ =>$id, ‘text’ => $message, ‘parse_mode’ => ‘HTML’, ‘disable_web_page_preview’=>true, ‘reply_markup’ => json_encode(array(‘inline_keyboard’ => $kb)) ); $this->request(‘sendMessage’, $data); >

Получаем в параметрах ID диалога, сообщение и инлайн клавиатуру, если она нужна.

Функция редактирования текста сообщения — editMessageText

public function editMessageText($id, $m_id, $m_text, $kb=») < $data=array( ‘chat_id’ =>$id, ‘message_id’ => $m_id, ‘parse_mode’ => ‘HTML’, ‘text’ => $m_text ); if($kb) $data[‘reply_markup’]=json_encode(array(‘inline_keyboard’ => $kb)); $this->request(‘editMessageText’, $data); >

Редактируем с помощью нее сообщение бота в телеграме всемсте с инлайн клавиатурой, если нужно. Получаем в качестве параметров ID чата, ID сообщения, новый текст сообщения, инлайн клавиатуру.

Функция ответа на событие нажатия кнопки (обратного запроса) — answerCallbackQuery

public function answerCallbackQuery($cb_id, $message) < $data = array( ‘callback_query_id’ =>$cb_id, ‘text’ => $message ); $this->request(‘answerCallbackQuery’, $data); >

Получаем в параметрах ID обратного запроса и текст ответа.

Функция редактирования разметки/кнопок — editMessageReplyMarkup

public function editMessageReplyMarkup($id, $m_id, $kb) < $data=array( ‘chat_id’ =>$id, ‘message_id’ => $m_id, ‘reply_markup’ => json_encode(array(‘inline_keyboard’ => $kb)) ); $this->request(‘editMessageReplyMarkup’, $data); >

Получаем как параметр ID чата, ID сообщения, новую разметку/клавиатуру. Используем в паре с answerCallbackQuery, для ответа на запрос с заменой разметки.

Опубликовано в: Telegram , Telegram Bots , Статьи

Primary Sidebar

О нас

  • Биржа фрилансеров
  • Инвестиции с Interactive Brokers
  • Флаги международного свода сигналов
Еще по теме:  На андройд перестали приходить уведомления Телеграм

Свежие записи

  • Как установить gh на CentOS7 c yum?
  • Как изучить флаги международного свода сигналов?
  • Запускаем Next.js приложение через PM2 на Nginx в простейшей конфигурации

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

Особенности создания телеграм-бота на Java

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

Ботами (bot) и чат ботами (chat bots) называют специальные аккаунты в Телеграмм, используемые для автоматической обработки и отправки сообщений. На практике пользователи взаимодействуют с ботами посредством сообщений, которые они отправляют как через обычные, так и через групповые чаты. Бот работает по определенной логике — она контролируется с помощью HTTPS-запросов к специальному API для ботов от Телеграм.

Возможности ботов

Приведем несколько классических примеров применения ботов в Телеграмм:

  1. Утилиты и инструменты. Телеграм-бот может переводить тексты, отображать актуальную погоду, предупреждать о каких-либо предстоящих событиях, использоваться для проведения опросов.
  2. Интеграция с сервисами. Бота можно использовать для отправки комментариев либо уведомлений, управления «умным домом».
  3. Игры (как одно-, так и многопользовательские). Бот без проблем поиграет с вами в шахматы/шашки, проведет викторину и т. п.
  4. Социальные сервисы. При необходимости специальный бот найдет вам собеседника, взяв за основу для поиска ваши интересы и увлечения.
  5. Все остальное. Это «все остальное» ограничивается лишь вашей фантазией. На деле вы можете запрограммировать бота практически для чего угодно. Однако стоит понимать, что он все равно останется ботом, а значит, не сможет помыть посуду вместо вас.

Если резюмировать вышеперечисленное одним предложением, то бот в Телеграм умеет оставлять комментарии к записям и постам, переводить тексты, искать информацию и аудио/видеоданные, спрашивать и отвечать на вопросы, подключаться к сети, обходить блокировки роутеров и сервисов, создавать чаты для общения, транслировать презентации и т. д. — всего не перечислишь.

Как функционируют боты?

Боты — особые аккаунты, по сути, представляющие собой интерфейс к вашему сервису, работающему на удаленном сервере. Плюс в том, что для создания бота вам совершенно не обязательно изучать низкоуровневые технологии, так как все взаимодействие основано на обычном HTTPS-интерфейсе с упрощенными методами API — его называют Bot API.

Еще по теме:  Как менять название канала в Телеграмме без уведомления

Особенности создания бота с помощью Java

Если вы не ищете легких путей, хотите прокачаться в Java и привыкли все творить своими руками, вы можете написать бота, используя язык программирования Java («Джава», «Ява»). Ниже рассмотрим один из возможных алгоритмов действий.

Пишем бот на Java

На деле написать бота для Телеграмм, используя Java, не так уже сложно. Рассмотрим пример создания бота посредством Webhook.

Общая последовательность действий будет следующей:

  1. Открываем «Эклипс», создаем новый Java-проект.
  2. Находим и загружаем базу, необходимую для создания Telegram-ботов.
  3. Импортируем загруженную библиотеку в проект.
  4. Создаем класс test.SimpleBot со следующим содержимым:

— открытие веб-браузера, переход по ссылке: https://telegram.me/botfather;

— нажатие кнопки «Send message»;

— выбор BotFather в Телеграме;

— ввод имени бота на Webhook.

Также надо будет придумать имя пользователя для вновь созданного бота. Тут главное, чтобы это имя было уникальным. После ввода имени надо будет нажать кнопку подтверждения, в результате чего появится сообщение об успешной конфигурации. Обратите внимание, что после «Use this token to access the HTTP API:» выведется ваш токен, который надо будет ввести в требуемом месте.

  1. Переходим в «Эклипс», запускаем бота.
  2. В адресной строке веб-браузера набираем https://telegram.me/имя_вашего_бота (это необходимо для тестирования работоспособности).
  3. Нажимаем «Send message».
  4. Возвращаемся в Телеграм, выбираем созданного бота.
  5. Кликаем «Старт».

Все, Telegram-bot Webhook, написанный на «Джава», готов. На данном этапе на любое обращение робот должен отвечать что-то в стиле «Я не знаю, что ответить на это», однако эту фразу можно поменять путем дополнения базы.

Каковы плюсы Telegram-бота на Java

Можно перечислить ряд преимуществ такой реализации:

  1. Простота.
  2. Минимум выполняемых операций.
  3. Минимум требуемых знаний и умений.

В сети вы можете найти целый спектр уже готовых решений в виде программного кода, поэтому написать бота на Java будет не сложно. Вот, к примеру, полезное обучающее видео, где подробно рассказывается о том, как создать погодного бота на «Джава». Преимущество именно этого решения — легкость, доступность, простота создания. Дерзайте!

  • https://stelegram.ru/faq/pravila-sozdaniya-telegramm-bota-na-java;
  • https://tlgrm.ru/docs/bots.

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

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