В этой статье я расскажу, как я создал бота Телеграм, который автоматически отправляет в мой Telegram-канал новые посты с моего WordPress-блога.
Если вам нужен бот для рассылки новых статей с вашего сайта, то эта статья тоже поможет вам, даже если у вас сайт сделан на любом движке (Drupal, Joomla, 1С-Битрикс или что-то другое).
Кроме того, эта инструкция дает представление о том, как можно настроить автоматическую публикацию новостей из Twitter, Facebook, Instagram, YouTube в ваш Телеграм-канал.
Оказывается, все это не так уж и сложно! Любой человек может сделать это и для этого не нужно никаких особенных технических знаний. Просто следуйте инструкции и все.
Шаг 1. Создаем канал в Телеграме для своего блога (сайта)
Откройте меню Телеграм в мобильном приложении, нажав на три горизонтальные полоски:
Выберите в открывшемся меню пункт “Создать канал”:
Далее там все очень просто. Введите имя канала, его описание и добавьте логотип канала.
Кстати, реальный адрес моего канала, это – @wilhardonlinebusiness, вы можете найти его в Телеграме, посмотреть, как у меня там все сделано, и подписаться на него.
Шаг 2. Создаём бота в Телеграм
Бот в Telegram создается при помощи другого бота, который называется BotFather (“Папа Ботов” – в переводе с английского).
Введите в строке поиска Телеграм @BotFather и откройте бота.
Введите команду /newbot, после этого Папа Ботов предложит вам ввести имя, которое будет отображаться в списке контактов, и адрес. Например, «Бот блога wilhard.ru» с адресом «wilhard_bot». Имя бота обязательно должно заканчиваться нижним подчеркиванием и словом bot: «_bot»
Если адрес не занят, а имя введено правильно, BotFather пришлет в ответ сообщение с токеном — «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать. Даже вашей жене или мужу)… Никому! Шутка… Любимым можно показывать.
Через BotFather вы также сможете добавить аватарку для бота, описание и прочее.
Шаг 3. Добавляем созданного бота в администраторы вашего канала в Телеграме
Теперь необходимо открыть ранее созданный вами канал, войти в настройки и добавить вновь созданного бота в администраторы. Для поиска бота можно использовать его адрес. Например, «wilhard_bot»
Шаг 4. Создаем RSS-канал для нашего блога (сайта)
RSS – это определенный формат, в котором публикуются статьи. Чтобы передавать статьи с вашего сайта в Телеграм, необходимо сначала трансформировать их в формат RSS, таким образом вы создадите RSS-канал.
Обычно это совсем несложно. Например, для сайтов на WordPress RSS-канал создается автоматически и чтобы получить его адрес, просто добавьте к адресу вашего сайта /feed/: site.ru/feed/. Например, адрес RSS-канала моего блога: wilhard.ru/feed/.
Шаг 5. Публикуем содержимое RSS-канала в Телеграм-канал вашего сайта
Последний этап — научить нашего бота отправлять новые статьи с блога (сайта) в созданный нами канал. Для этого мы будем использовать популярный сервис автоматизации IFTTT.
IFTTT расшифровывается как “If This Then That”, что в переводе с английского означает “Если это тогда то”.
С помощью IFTTT можно создавать инструкции для бота. В нашем случае инструкция простая: каждый раз, когда в RSS-ленте блога появляется новая запись, он должен отправлять сообщение в наш Telegram-канал.
Переходим в раздел IFTTT “My Applets”, нажимаем на кнопку “New Applet“:
и далее нажимаем на ссылку “This”:
Находим в списке функций триггер Feed, New feed item и указываем URL-адрес нашей RSS-ленты.
Кстати, при помощи сервиса IFTTT вместо RSS-ленты можно отслеживать появление новых записей в Twitter, Facebook, Instagram, YouTube и во многих других сервисах — для каждой функции в IFTTT предусмотрены отдельные модули. Кстати, на момент написания этой статьи там нельзя было отслеживать публикации в VK. Надеюсь, такая возможность появится в будущем. Просто выберите вместо RSS соответствующий модуль.
Теперь переходим к следующему шагу — выбираем действие, которое будет выполняться при обнаружении новой записи в RSS.
Нажимаем на “That”:
и ищем Webhooks, “Make a web request” — с помощью этого модуля можно отправлять запросы к любым сервисам. В нашем случае — к боту в Telegram.
В открывшейся форме в поле URL нужно указать ссылку https://api.telegram.org/botТОКЕН/sendMessage, подставив в ссылку вместо botToken, токен, сгенерированный при создании нами Телеграм-бота.
Метод укажите POST, тип контента – application/json.
Вот, как это все настроено у меня:
Body — в этом поле указывается, в какой Телеграм-канал нужно отправить сообщение и что в нём должно быть написано:
{“chat_id”:”@wilhardonlinebusiness”, “text”:”{{EntryTitle}} {{EntryUrl}}”} {{EntryImageUrl}}
- chat_id — адрес канала, в который необходимо отправить сообщение. При помощи этого поля одного бота можно подключить сразу к нескольким каналам.
- text — содержание сообщения. Например, заголовок статьи из RSS (EntryTitle), ссылка (EntryUrl) и картинка (EntryImageUrl). Список доступных опций можно посмотреть по кнопке Ingredient.
У меня именно такие настройки, и бот исправно отправляет новые посты с моего блога в Телеграм-канал. У триггера в IFTTT может быть задержка, поэтому статьи, появившиеся в RSS-канале, могут отправляться в Telegram не сразу, а спустя 30-60 минут. Но это теоретически. У меня сообщение об опубликованных новых статьях сразу же появляется в Телеграме, мгновенно!
В каком виде выводятся статьи у меня, смотрите в моем Телеграм-канале @wilhardonlinebusiness.
Как видите, ничего сложного, однако я в свое время не мог найти хорошей статьи в Интернете о том, как настроить отправку новых статей в Телеграм-канал и поэтому потратил на то, чтобы разобраться, огромное количество времени. Надеюсь, что эта статья поможет вам быстро настроить своего бота в Телеграме.
Единственное, с чем я пока не разобрался, – это как форматировать тексты, которые публикуются в канале. Хотелось бы научиться настраивать шрифты, их размер и выводить всякие красивые иконочки. Возможно, в будущем разберусь и напишу об этом. Если же вы уже разобрались, как это делается, пожалуйста, поделитесь своим опытом в комментариях.
блин, подскажите пожалуйста ifttt вот такую ошибку выдает:
Action failure message: Your server returned a 400. Unable to make web request to
Извините, не могу помочь. Обратитесь в поддержку ifttt.
ваш сайт не позволяет мне сохранить комментарий с какими-либо ссылками или bb-кодами
Да, сайт блокирует ссылки, чтобы спама не было. Комменты со ссылками публикуются только после модерации. Ваш уже опубликован.
Здравствуйте!
API токен для управления ботом – это такое длинное число, затем двоеточие и еще более длинный набор букв и цифр, да? Или только длинный набор букв и цифр после двоеточия?
Здравствуйте! Не совсем понял Ваш вопрос. Пришлите скриншот, пожалуйста, через сервис imgbb.com.
меня просто смущает наличие двоеточия внутри апи токена)
см скриншот joxi.ru/MAjL7ERUkJwLqm
Не обращайте внимание, все должно работать))). Просто заморочились Вы сильно))). Мне бы даже в голову не пришло читать API-токен))).