Инструкция: Создание бота для Telegram без навыков программирования
Seo Education Школа интернет-маркетингаШаг 1. Создаём бота в Telegram
Бот в Telegram создается при помощи другого бота под названием BotFather. Отправляем ему команду /newbot, выбираем имя, которое будет отображаться в списке контактов, и адрес. Например, «Бот для DTF» с адресом «dtf_news_bot».
Если адрес не занят, а имя введено правильно, BotFather пришлет в ответ сообщение с токеном — «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать.
Через BotFather также можно добавить аватарку для бота, описание и прочее.
Шаг 2. Создаём канал в Telegram
Теперь создаём канал с любым названием и адресом, и переходим в его настройки. Всё, что требуется — добавить в список администраторов созданного нами бота — именно он будет публиковать заметки в канал.
Для поиска бота можно использовать его адрес. Например, «dtf_news_bot».
Шаг 3. Создание условия
Следующий этап — научить бота отправлять новости с сайта в созданный канал. Для этого воспользуемся популярным сервисом для автоматизации IFTTT.
С его помощью можно создавать инструкции для работы бота. В нашем случае она выглядит так: каждый раз, когда в RSS-ленте сайта появляется новая запись, он должен отправлять сообщение в канал Telegram.
IFTTT расшифровывается как If This Then That
Переходим в раздел IFTTT "My Applets", нажимаем на кнопку "New Applet" и далее на ссылку "This". Находим в списке функций триггер Feed, New feed item и указываем URL-адрес нашей RSS-ленты. Например, у Wordpress-сайтов она обычно расположена по адресу example.com/feed/.
Вместо RSS-ленты можно отслеживать появление новых записей в Twitter или Facebook-аккаунте — для каждой функции в IFTTT предусмотрены отдельные модули.
Теперь переходим ко второму шагу — выбираем действие, которое будет выполняться при обнаружении новой записи в RSS. Нажимаем на "That" и ищем Maker Webhook, "Make a web request" — с помощью этого модуля можно отправлять запросы к любым сервисам. В нашем случае — к боту в Telegram.
В открывшейся форме в поле URL нужно указать ссылку https://api.telegram.org/botТОКЕН/sendMessage, подставив в неё токен, сгенерированный на первом шаге. Метод: POST, тип контента: application/json.
Body — поле для шаблона запроcа, который будет отправляться в Telegram. В нём указываем, в какой канал нужно отправить сообщение и что в нём должно быть написано:
{"chat_id":"@адрес_канала", "text":"{{EntryTitle}} {{FeedUrl}}"}
· chat_id — адрес канала, в который необходимо отправить сообщение. Таким образом одного бота можно подключить сразу к нескольким каналам. В качестве адресата можно указать и конкретного пользователя. В таком случае вместо адреса канала необходимо указать его ID (можно получить при помощи бота).
· text — содержание сообщения. Например, заголовок материала из RSS (EntryTitle), его содержание (EntryContent) и ссылка (FeedUrl). Список доступных опций можно посмотреть по кнопке Ingredient.
Если всё настроено верно, бот отправит сообщение из RSS-ленты в канал. У триггера в IFTTT есть задержка, поэтому сообщение, появившееся в RSS-ленте, отправится в Telegram не сразу, а спустя 30-60 минут.
В качестве условия для отправки сообщения можно выбрать любой другой сценарий, доступный на IFTTT. Например, Weather Underground умеет каждый день отправлять сообщение с прогнозом погоды на завтра. Триггер Stocksможно настроить на отправку стоимости акций при закрытии торгов.
Теперь решим более сложную задачу — научим созданного бота отвечать на сообщения пользователей. Например, присылать по команде прайс-лист, контакты или отвечать на часто задаваемые вопросы клиентов.
Шаг 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-бота и сервер
Теперь необходимо связать Telegram и файл на сервере, чтобы запросы, отправленные боту в мессенджере, обрабатывал наш скрипт.
Для этого понадобится консоль. У разных хостинг-провайдеров она может находиться в разных разделах интерфейса управления сайтом. Кроме того, можно воспользоваться программой Terminal на macOS, введя через неё команду 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'));
· Hello и Hi — текст пользователя, на который бот должен отреагировать.
· Nice to meet you — ответ бота на отправленное пользователем сообщением.
Ниже в коде добавляем дополнительные ответы. Например, чтобы в зависимости от отправленного слова, бот присылал необходимую информацию пользователю (как в боте vc.ru для «ВКонтакте»):
} else if ($text === "Цены") { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Прайс-лист можно скачать по ссылке example.com/price')); } else if ($text === "Контакты") { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Контактный адрес для связи — secret@vc.ru'));
Можем указать любое количество фраз и ответов на них. Также можно изменить кнопки, доступные пользователю во время работы с ботом. Находим строчку кода 'keyboard' => array(array('Hello', 'Hi')) и вместо Hello и Hi указываем «Цены» и «Контакты».
После сохранения файла изменения сразу вступят в силу.
· Робот Антон — бот, позволяющий быстро скачать последнюю локализацию на украинский или русский язык. По-умолчанию в программе английский интерфейс.
· iGov — бот для поиска свободных мест в очереди на получение биометрического загранпаспорта. Мониторит электронные списки за вас и присылает уведомления.
· PrivatBankBot — бот для быстрых переводов внутри мессенджера, доступный клиентам «ПриватБанка». Нужно привязать карту, пройти процедуру идентификации и пользоваться в любом диалоге при помощи инлайн-режима, упомянув бота после символа @.
· Курс Валют — еще один «денежный» бот с говорящим названием. Следит за курсом на межбанке, в банках и на рынке. Советует, где дорого покупают и дешево продают валюту.
· КриптоБот — присматривает за курсами Bitcoin и Ethereum. Лучшее залипалово под шум кулеров своей майнинговой фермы.
· Weatherman — присылает погоду в выбранных городах. Работает по расписанию.
· TempMail — генератор временных почтовых ящиков. Если нужно сделать несколько одноразовых аккаунтов или вы не доверяете сервисам — самое быстрое решение.
· Tracker — универсальный трекер для посылок, поддерживающий клиенты нескольких сервисов доставки: «Укрпочты», «Новой Почты», «Деливери», «Мист-Экспресс».
· Patentbot — через бота можно проверить не занята ли торговая марка, а затем ввести необходимые для регистрации данные и оплатить услугу.
· RailwayBot — бот для поиска билетов на поезда внутри Украины. «Говорит» на трех языках. Пока купить билеты нельзя, но в будущем эту функцию обещают добавить.
· OpenDataBot — бот для работы с открытыми данными: может найти информацию по компании, отслеживать изменения.
· Киноман 2.0 — ищет фильмы и сериалы, советует рандмоные картины для просмотра, следит за ситуацией на торрентах.
· Translator — бот переводит с русского на английский и обратно.
· Andy — бот, помогающий учить английский в разговорной форме. Не волнуйтесь, он не такой невоспитанный, как детище Microsoft.
· Ударения — даже когда знаешь хитроумное слово, нужно его еще правильно произнести. Этот бот покажет, где следует поставить ударение.
· YouTube Audio Downloader — скачивает аудиодорожку любого видео из YouTube. Учтите, что боты не могут отправлять файлы, размер которых превышает 50 МБ.
· InstaSave — умеет загружать чужие фотографии и даже Stories из Instagram.
· Pomodoro Bot — таймер для работы по одноименной системе учета времени: 25 минут трудишься, 5 отдыхаешь. Повторять до выполнения задачи.
· DeLorean — путешествует во времени (пока только вперед) с вашими напоминаниями. Можно использовать вместо таск-менеджера.
· Evernote — компаньон заметочника Evernote, который после логина в аккаунте позволяет сохранять сообщения и прикрепленные файлы сразу в заметки.
· Vinci – бот одноименного фоторедактора. Обрабатывает присланные фотографии с помощью нейросетей. Доступно много фильтров, но на всякий случай предупредим — это уже не в моде.
· MyCookBot — к сожалению, этот бот не умеет обрабатывать продукты до готового состояния с помощью нейросетей. Но подсказывает рецепты и выбирает блюда из ваших ингредиентов.
· To PDF — зачем устанавливать на смартфон конвертер, если можно использовать бота. Выдает из OC, DOCX, ODT, TXT и JPG файлов документы в PDF.
· Dr.Web — проверяет файлы объемом до 10 МБ на вирусы. Побочные эффекты: вызывает необъяснимые приступы хохота у пользователей macOS.
· SoundCloud — бот, имитирующий клиент музыкального сервиса SoundCloud прямо в диалоговом окне. Все по-взрослому: скачивание треков, чарты по жанрам, подключения аккаунта.
· Wolfram Alpha — решает простые математические задачки. Больше не надо скачивать дурацкие математические калькуляторы, он даже графики построит и пришлет. Распознает и другие запросы.
· Programming — работать программистом еще полезнее и выгоднее. Бот поможет вникнуть в профессию, предоставляя справочник и множество интересных фактов.
· EasyStrongPasswordBot — бот, который решит проблему с генерацией паролей любой сложности. Его хардкорные поделки будет непросто взломать.
· GrammarNaziBot — проверяет текст на орфографию. Можно добавить в чат, чтобы стыдно за безграмотность было всем.
· Controller Bot — пригодится администраторам каналов. Позволяет создавать запланированные публикации, следить за статистикой подписчиков и обходить ограничения по форматированию.
· Storebot — бот для поиска других ботов