Инструкция: Создание бота для Telegram без навыков программирования
Vlad TeplinskiyТестовый бот
В этом гайде, за 6 шагов, сделаем простого бота. У него будет всего 2 функции: публикация новостей из ФБ в телеграм + автоматические ответы на вопросы.
Шаг 1: Батя ботов
Бот в Telegram создается при помощи другого отца ботов @BotFather.
Алгоритм прост:
- Открываем бота @BotFather
- Отправляем команду /newbot
- Создаём имя бота и адрес (например, «Бот для Диджиталов» с адресом «dgtlsnewsbot»)
Если всё окей, BotFather выдаст токен — ключ для доступа к боту. Его лучше не терять и никому не передавать.
Дополнительно:
Через BotFather можно установить аватар бота, добавить описание, изменить имя бота, и всё прочее по мелочам оформления.
Шаг 2: Назначаем администратора
Бот готов, теперь ему нужен канал, в котором он будет работать.
После создания канала нужно добавить бота в список администраторов — тогда он сможет публиковать заметки в канал
Шаг 3: Обучение бота
Бот работает по алгоритму, который нужно создавать вручную. Для этого нам подойдёт популярный сервис создания алгоритмов IFTTT.
Наш алгоритм:
Если в RSS-ленте сайта появляется новая запись, бот дублирует её в указанный Telegram-канал.
Инструкция по IFTTT (1 этап):
- открываем раздел "My Applets"
- нажимаем на кнопку "New Applet"
- далее жмём на ссылку "This".
- выбираем в списке функций триггер Feed
- клацаем New feed item и указываем URL-адрес RSS-ленты
Вместо RSS-ленты можно выбрать репостинг из Twitter или Facebook — для каждой соцсети в IFTTT есть отдельные модули (ссылки на модули вставлены в названия соцсетей).
Инструкция по IFTTT (2 этап):
Теперь выбираем действие, которое бот будет делать при обнаружении новой записи в RSS.
- нажимаем на "That"
- выбираем Maker Webhook
- там клацаем "Make a web request" (модуль помогает задать параметр, что при выполненном условии IF делать боту и в какой веб-источник)
- в открывшейся форме в поле URL пишем ссылку https://api.telegram.org/bot[ТОКЕН]/sendMessage
- выбираем "Метод: POST", "тип контента: application/json"
Примечание:
Body — поле для шаблона запроcа, который будет отправляться в Telegram.
В нём указываем, в какой канал нужно отправить сообщение и что в нём должно быть написано:
- chat_id — адрес канала, в который полетит сообщение. Одного бота можно подключить сразу к нескольким каналам. В качестве адресата можно указать и конкретного пользователя.
- text — содержание сообщения. Например, заголовок материала из RSS (EntryTitle), его содержание (EntryContent) и ссылка (FeedUrl). Больше функций можно посмотреть в кнопке +Ingredient.
Если всё сделано без ошибок, бот перешлёт пост из RSS-ленты в канал. В IFTTT есть небольшая задержка, поэтому репосты из RSS-ленты попадают в Telegram в среднем через 30-60 минут.
Следующая задача
Научим бота автоматическим ответам по сценарию.
Шаг 4: Сервер
Теперь нам нужен веб-хостинг и сертификат SSL. Для этого воспользуемся бесплатным сервисом "Let's Encrypt".
Для бота лучше сделать отдельный поддомен — например, bot.example.com — и разместить на нём один файл index.php. Так проще не запутаться.
Внутри файла размещаем код бота c сайта Telegram.
На хостинге Vscale можно создать отдельный сервер для бота. Это делается при помощи одного клика в панели управления.
В код бота нужно внести всего два изменения:
- в строке define('BOT_TOKEN', '12345678:replace-me-with-real-token'); вместо "12345678:replace-me-with-real-token" написать токен своего бота;
- в строке define('WEBHOOK_URL', 'https://my-site.example.com/secret-path-for-webhooks/'); вместо "https://my-site.example.com/secret-path-for-webhooks/" указать URL-адрес файла с кодом для бота: https://bot.example.com/index.php.
Шаг 5: Подключаем бота к серверу
Чтобы бот работал, нужно связать Telegram и файл на сервере. Тогда скрипт будет обрабатывать все сообщения, отправленные боту.
Для этого понадобится консоль.
У разных хостинг-провайдеров она может находиться в разных разделах интерфейса управления сайтом.
Альтернатива для macOS: можно воспользоваться программой Terminal, ввести через неё команду [ssh имя_пользователя@адрес_домена].
После ввода пароля, печатаем для нашего поддомена простую команду:
Если всё сделано правильно, бот напишет в Telegram сообщение "Hello".
Шаг 6: Настраиваем текст автоответов бота
Добавим различные сценарии для ответов бота. Открываем созданный ранее файл index.php и находим в нём строчку:
- Hello и Hi — текст, на который бот должен реагировать
- Nice to meet you — реакция бота на текст
Ниже в коде можно дописать сценарий и на другие ответы:
Ограничений по количеству фраз и ответов на них нет. Можно изменить кнопки для работы с ботом. Для этого в строчке кода 'keyboard' => array(array('Hello', 'Hi')) вместо «Hello» и «Hi» пишем «Цены» и «Контакты».
Изменения вступят в силу сразу после сохранения файла.
Нам важно знать
Понятна ли тебе данная инструкция? Отреагируй соответствующим смайликом под постом в канале Digital'ы.