Инструкция: Создание бота для Telegram без навыков программирования

Тестовый бот

В этом гайде, за 6 шагов, сделаем простого бота. У него будет всего 2 функции: публикация новостей из ФБ в телеграм + автоматические ответы на вопросы.

Шаг 1: Батя ботов

Бот в Telegram создается при помощи другого отца ботов @BotFather.

Алгоритм прост:

1. Открываем бота @BotFather

2. Отправляем команду /newbot

3. Создаём имя бота и адрес (например, «Бот для Диджиталов» с адресом «dgtlsnewsbot»)

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

Дополнительно:

Через BotFather можно установить аватар бота, добавить описание, изменить имя бота, и всё прочее по мелочам оформления.

Шаг 2: Назначаем администратора

Бот готов, теперь ему нужен канал, в котором он будет работать.

После создания канала нужно добавить бота в список администраторов — тогда он сможет публиковать заметки в канал

Шаг 3: Обучение бота

Бот работает по алгоритму, который нужно создавать вручную. Для этого нам подойдёт популярный сервис создания алгоритмов IFTTT.

Наш алгоритм:

Если в RSS-ленте сайта появляется новая запись, бот дублирует её в указанный Telegram-канал.

Инструкция по IFTTT (1 этап):

1. открываем раздел «My Applets»

2. нажимаем на кнопку «New Applet»

3. далее жмём на ссылку «This».

4. выбираем в списке функций триггер Feed

5. клацаем New feed item и указываем URL-адрес RSS-ленты

Вместо RSS-ленты можно выбрать репостинг из Twitter или Facebook — для каждой соцсети в IFTTT есть отдельные модули (ссылки на модули вставлены в названия соцсетей).

Инструкция по IFTTT (2 этап):

Теперь выбираем действие, которое бот будет делать при обнаружении новой записи в RSS.

1. нажимаем на «That»

2. выбираем Maker Webhook

3. там клацаем «Make a web request» (модуль помогает задать параметр, что при выполненном условии IF делать боту и в какой веб-источник)

4. в открывшейся форме в поле URL пишем ссылку https://api.telegram.org/bot[ТОКЕН]/sendMessage

5. выбираем «Метод: POST», «тип контента: application/json»

Примечание:

Body — поле для шаблона запроcа, который будет отправляться в Telegram.

В нём указываем, в какой канал нужно отправить сообщение и что в нём должно быть написано:

{«chat_id»:»@адрес_канала», «text»:»{{EntryTitle}} {{FeedUrl}}»}

1. chat_id — адрес канала, в который полетит сообщение. Одного бота можно подключить сразу к нескольким каналам. В качестве адресата можно указать и конкретного пользователя.

2. 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 можно создать отдельный сервер для бота. Это делается при помощи одного клика в панели управления»

В код бота нужно внести всего два изменения:

1. в строке define(‘BOT_TOKEN’, ‘12345678:replace-me-with-real-token’); вместо «12345678:replace-me-with-real-token» написать токен своего бота;

2. в строке 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 имя_пользователя@адрес_домена].

После ввода пароля, печатаем для нашего поддомена простую команду:

php -f /var/www/bot.example.com/index.php

Если всё сделано правильно, бот напишет в Telegram сообщение «Hello».

Шаг 6: Настраиваем текст автоответов бота

Добавим различные сценарии для ответов бота. Открываем созданный ранее файл index.php и находим в нём строчку:

} else if ($text === «Hello» || $text === «Hi») {

apiRequest(«sendMessage», array(‘chat_id’ => $chat_id, «text» => ‘Nice to meet you’));

1. Hello и Hi — текст, на который бот должен реагировать

2. Nice to meet you — реакция бота на текст

Ниже в коде можно дописать сценарий и на другие ответы:

} else if ($text === «Цены») {

apiRequest(«sendMessage», array(‘chat_id’ => $chat_id, «text» => ‘Прайс-лист можно скачать по ссылке example.com/price’));

Ограничений по количеству фраз и ответов на них нет. Можно изменить кнопки для работы с ботом. Для этого в строчке кода ‘keyboard’ => array(array(‘Hello’, ‘Hi’)) вместо «Hello» и «Hi» пишем «Цены» и «Контакты».

Изменения вступят в силу сразу после сохранения файла.

Источник: О Бизнесе



Самые актуальные новости - в Telegram-канале

Читайте также

Вверх