Как создать своего первого чат-бота Telegram с помощью Node.js
- Запись опубликована: 26 января, 2023
- Рубрика записи: Блок статей
- Комментарии к записи: 0 комментариев
Итак, сегодня утром вы проснулись с идеей разработать способ хранения и маркировки интересных статей, которые вы прочитали. Поиграв с идеей, вы считаете, что чат-бот Telegram является наиболее удобным решением для этой проблемы.
В этом руководстве мы расскажем вам обо всем, что вам нужно знать, чтобы создать своего первого чат-бота Telegram с использованием JavaScript и Node.js.
Чтобы начать, мы должны зарегистрировать нашего нового бота в так называемом Botfather, чтобы получить наш токен доступа к API.
Первым шагом к нашему собственному Telegram-боту является регистрация бота в BotFather. BotFather — это сам бот, который делает вашу жизнь намного проще. Это поможет вам с регистрацией ботов, изменением описания бота, добавлением команд и предоставлением вам токена API для вашего бота.
Get Telegram Chat ID
Токен API является наиболее важным шагом, так как он позволяет запускать код, который может выполнять задачи для бота.
1. Поиск бот-отца
BotFather можно найти в Telegram, выполнив поиск «BotFather». Нажмите на официальный BotFather, обозначенный белой галочкой в синем круге.
2. Регистрация нового бота
Теперь мы нашли BotFather, давайте поговорим с ним! Вы можете начать беседу, введя . BotFather попросит вас выбрать имя для вас обоих. Это имя может быть чем угодно и не обязательно должно быть уникальным. Чтобы все было просто, я назвал своего бота. /newbot ArticleBot
Затем вам будет предложено ввести имя пользователя для бота. Имя пользователя должно быть уникальным и заканчиваться на . Поэтому я выбрал , так как это имя пользователя еще не было взято. Это также будет имя пользователя, которое вы используете для поиска бота в поле поиска Telegram. bot michiel_article_bot
FatherBot вернет успешное сообщение с вашим токеном для доступа к API HTTP Telegram. Убедитесь, что этот токен хранится безопасно, и, конечно, не делитесь им ни с кем другим.
3. Изменение бота
Telegram – регистрация и настройка бота
Переписываю старую статью дабы более полно отделить и структурировать информацию. В данной статье речь пойдет о создании своего собственного бота и приглашение его в чат!
Создаем бота
Теперь заходим в настройки бота и позволяем ему читать все сообщения в чате. Это упростит поиск айди канала в который ми пригласим бота чуть ниже.
Создаем чат и приглашаем в него бота
Чат создается в пару кликов. В главном меню выбираем NEW CHANNEL и заполняем имя и адрес. Можно отправлять текст на имя чата – публичный чат и на его id – приватный! Теперь заходим на бота и активируем его, будет кнопка или можно командой /start
Через меню бота находим пункт меню Add to group и вступаем в только что созданный чат. На этом для публичного чата подготовка завершена, но если у вас приватный чат, присылать сообщения на имя чата не получится и понадобится его id. Чтобы его узнать, пишем в чат с приглашенным ботом любой текст и следуем по ссылке:
https://api.telegram.org/bot 273805635:AAGQOuPVadtQyEx0COPrDnq2r-YmUo90xaU /getUpdates
Источник: devarts.pro
Как создать простого бота для Телеграм на PHP
Создадим простого бота для мессенджера Telegram с использованием PHP. Данная статья создана исключительно в поучительных целях и не претендует на полноту или правильность подхода. Весь код бота очень простой и может быть освоен начинающими PHP-разработчиками.
Предупреждаю сразу профессионалов и перфекционистов от программирования — вам здесь делать нечего . Никаких фреймворков и гитхабов! Все будет очень просто и примитивно, но работать будет. И это главное. Всем счастья
Шаг 1: подготовка
Что нам понадобится:
- Веб-сервер с работающим PHP 5.6 и выше — не локальный веб-сервер, а веб-сервер на хостинге, что важно! Так как сервисы Telegram должны будут видеть вашего бота по внешней URL-ссылке;
- Веб-сервер должен работать через https — то есть на веб-сервере должен быть установлен давно (больше суток назад) зарегистрированный SSL-сертификат. Достаточно будет бесплатного Let’s Encrypt SSL-сертификата;
- Доступ к файлам на этом сервере, конечно же — иначе как мы что-то сделаем;
- Установленная кодовая страница UTF-8 на сервере по-умолчанию или добавьте в файл .htacces в корне сайта строку AddDefaultCharset utf-8;
- Аккаунт в мессенджере Telegram;
Шаг 2. Регистрация вашего бота в Телеграм
Да, да. Бот еще даже не создан, но перед этим его уже нужно зарегистрировать, чтобы получить уникальный идентификатор, чтобы в дальнейшем обращаться к BOT API Telegram.
Шаг 3. Создаем код бота
Будем делать прямо в корне сервера (не самый верный подход, можно создать папку bot, а в ней уже файл verysimple_bot.php). Для этого на сервере создадим файл verysimple_bot.php в котором и будет весь код бота. Не забываем, что весь код в файле verysimple_bot.php должен быть в кодировке UTF-8.
Для редактирования файлов кода и заброске их на сервер удобно использовать FAR Manager — в нем есть и подсветка синтаксиса и FTP/SFTP клиент для копирования файла на сервер.
Делаем заготовку бота, который сможет выдавать список команд и информацию о нас:
Шаг 4. Делаем WebHook и конкретизируем код бота
-
Чтобы все заработало, нужно сособщить сервису Телеграм, что наш бот лежит там-то — используй его код для такого-то бота verysimple_bot.
Для этого нужно сформировать ссылку, которая называется WebHook и её мы и сообщим телеграму:
https://api.telegram.org/bot 1234567899:AAKJhkkjhkjhKhKhjkhkhk_kJhgkjhJhgjghjhG /setWebhook?url= https://www.mysite.ru/verysimple_bot.php
Не забываем где красное заменяем на свои данные!
Как сформируете эту ссылку — вставьте её в браузер и запустите!
- Пользователь в диалоге с ботом пишет запрос, например /help
- Telegram Bot API через WebHook, что мы установили, берет этот запрос и отправляет в код бота
- Мы в боте получаем его, анализируем, видим например, /help и через Telegram Bot API и
функцию message_to_telegram отправляем ответ — который появлется в диалоге как ответ бота.
Шаг 5. Добавим возможность делать заявки через бота
Заявкой будем считать сообщение или вопрос, которое можно будет отправить через нашего бота какому-то пользователю, назовем его менеджер компании. То есть нам нужно организовать такую цепочку:
- Пользователь запрашивает у бота «Оставить заявку», например набрав команду /order
- Бот входит в режим ожидания текста Заявки
- Если пользователь ввел текст и нажал Enter, только тогда отослать это сообщение заранее запрограммированному по менеджеру компании.
Получим идентификатор chat_id пользователя кому нужно отсылать заявки:
- Помните наш файл message.txt — вот он сейчас понадобится
- Присоединяемся к нашему боту тем пользователем, кому будем слать заявки (менеджер компании)
- Сразу открываем файл message.txt и смотрим блок: [chat]
$order_chat_id = ‘123456789’; //chat_id менеджера компании для заявок $bot_state = »; // состояние бота, по-умолчанию пустое
Сохраняем состояние бота для каждого пользователя
Далее, важный момент: у нас любой присоединившийся пользователь сможет сделать заявку, и чтобы бот понимал, что находится в режиме ввода заявки именно с этим пользователем, мы должны сохранять и считывать состояния бота для каждого пользователя отдельно!
Напишем две функции: set_bot_state($chat_id, $data) и get_bot_state($chat_id) — которые сохраняют текущее состояние бота и получают соответсвенно, для нужного пользователя. Сохранять будем в подпапке /users на сервере, которую создадим предварительно не забыв дать права на запись. Состояния будут хранится все в тех же текстовых файлах с именами chat_id пользователей и содержать последнюю команду:
// сохранить состояние бота для пользователя function set_bot_state ($chat_id, $data) < file_put_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’, $data); >// получить текущее состояние бота для пользователя function get_bot_state ($chat_id) < if (file_exists(__DIR__ . ‘/users/’.$chat_id.’.txt’)) < $data = file_get_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’); return $data; >else < return »; >>
Теперь дополним код бота, добавив запись и отлов состояния и отправив заявку менеджеру компании, если состояние отправки заявки.
Шаг 6. Регистрация команд бота
Вот и все — простой бот работает! Всем спасибо, если дочитали и что-то заработало.
Николай Комарков
Источник: www.novelsite.ru