Недавно задался вопросом, как добавить автоматические оповещения о начале стрима на Twitch в Telegram канал. Хотел сделать оповещение в виде сообщения с картинкой и кнопкой. Нашёл довольно простое решение. Можно воспользоваться сервисом для автоматизаций, например Make.com.
Итоговый результат будет выглядеть примерно так:
Рассмотрим как это сделать поэтапно.
Создаём Telegram-бота
Для начала нужно создать Telegram-бота и сделать его администратором нашего канала. Для этого в панели поиска Telegram вводим BotFather и переходим в чат с ним.
- Пишем команду /start для запуска бота. В ответ получаем инструкцию и список доступных команд.
- Используем команду для создания нового бота: /newbot
- Следующим сообщением задаём название нашего бота латиницей.
- Теперь задаём имя пользователя для бота. Оно обязательно должно содержать _bot в конце.
В ответ получаем сообщение о том что бот успешно создан, а также HTTP API токен. Он нам понадобится в дальнейшем.
Переходим в свой Telegram канал. Приглашаем в него созданного нами бота. Для этого нажимаем на название канала, Откроется окно Информация о канале. В нём нажимаем на значок Пригласить пользователя, как показано на следующей картинке. Вбиваем в поиске имя пользователя нашего бота и приглашаем его.
Снова открываем окно Информация о канале. Вызываем меню, как показано на картинке, и заходим в Управление каналом.
Выбираем пункт Администраторы. В нижней части нажимаем Добавить администратора и кликаем на нашего бота. Выставляем права как на картинке, оставляя только право публиковать сообщения.
Больше в Telegram делать ничего не нужно. переходим к настройке автоматизации. Для этого воспользуемся сервисом Make.com. Можно использовать и другой сервис, например IFTTT, но я давно используй Make, поэтому выбрал именно его. Бесплатный тариф в этом сервисе включает две автоматизации (мы сделаем только одну) и 1000 операций в месяц. Для нашей задумки этого хватит.
Создаём сценарий в Make.com
Переходим по ссылке https://www.make.com/en/register. Указываем никнейм, почту, пароль, страну (РФ в списке нет. Я указывал Беларусь). Hosting Region – EU. Соглашаемся с Лицензионным соглашением и отказываемся от рассылки.
Заходим в указанный нами почтовый ящик, туда должно прийти письмо с подтверждением аккаунта. Переходим по ссылке в письме и авторизуемся на сайте. Видим небольшую форму с опросом. Указываем что-нибудь, например как на картинке.
После этого попадаем на главный экран. Жмём справа вверху Create a new scenario.
Жмём на огромную кнопку с плюсом в центре экрана и пишем в поиске Twitch. Кликаем на него.
В выпадающем списке функций ищем Watch Streams. Эта функция запускает действие когда указанный Twitch канал начинает или заканчивает стрим.
В появившемся меню нас просят указать Webhook. нажимаем кнопку Add.
Заполняем всё в открывшемся меню.
- В строке Webhook name указываем название вебхука (можно оставить стандартное).
- В строке Connection нужно создать подключение. Жмём кнопку Add, задаём название (можно оставить стандартное). Нажимаем кнопку Save.
- После этого откроется окно авторизации Twitch. Авторизуемся и нажимаем кнопку Разрешить. В строке User/Channel ID нажимаем кнопку Serach, вводим название Twitch канала (наш никнейм если делаем для своего канала), жмём кнопку Ok. После этого строка User/Channel ID автоматически заполнится цифрами.
- В строке Event Type выбираем When the specified channel starts a stream.
- Нажимаем кнопку Save.
По итогу, у меня это окно выглядит так:
В очередном окне нажимаем Ok. С Twitch мы закончили.
Наводим курсор на значок Twitch и нажимаем появившуюся кнопку Add another module. Пишем в поиске Telegram Bot и выбираем его.
В появившемся меню ищем Send a Photo и жмём на него.
Начинаем заполнять открывшееся окно.
- В строке Connection нажимаем кнопку Add. Вводим название подключения (можно оставить стандартное) и вводим Token который нам прислал BotFather в начале этой статьи (HTTP API Token). Нажимаем Save.
- В строке Chat ID вводим имя канала в котором будем публиковать оповещение. Для этого снова идём в Telegram. Нажимаем на название канала и видим строку Ссылка. В поле Chat ID нужно ввести то что следует после t.me/ написав перед этим символ @.
- Поле Message Thread ID оставляем пустым.
- В строке Caption вводим текст сообщения которое будет приходить в наш Telegram канал, например “Хей! Стрим запущен, заходи!”.
- В строке Send by выбираем HTTP URL.
- В строку URL вставляем ссылку на нашу картинку, которую будем использовать для анонса. Ссылка должна быть прямой. Сервис куда можно залить картинку, можно найти по запросу Хостинг картинок с прямой ссылкой. За пример возьмём сайт https://ru.imgbb.com. Загружаем картинку. Получаем окно как будет на скриншоте ниже. Выбираем пункт как на скриншоте. Копируем ссылку. Из ссылки оставляем только подчёркнутое. именно то что находится между [img]….[/img].
- Строку Parse Mode оставляем пустой.
- В строке Disable Notification выбираем то что нам нужно. Если выбрать Yes сообщение придёт подписчикам без уведомления. На iOS не будет вообще никакого уведомления, на Android придёт уведомление без звука. Я выбрал Empty, то есть в моём случае сообщение придёт с уведомлением.
- Чуть ниже нажимаем на кнопку Show advanced settings.
- Строку Original Message ID оставляем пустой.
- В строке Enter/Assemble the Reply Markup Field выбираем Enter the Reply Markup.
- В строку Reply Markup вставляем или перепечатываем руками код приведённый ниже (в случае возникновения ошибки можете написать в Telegram или Discord):
{"inline_keyboard":
[[{"text":"Текст кнопки","url":"Ссылка на ваш twitch канал"}]]}
- Строку Content Type оставляем пустой.
Нажимаем кнопку Ok.
Теперь нажимаем кнопки в левом нижнем углу экрана. Иконку Scheduling переключаем в режим ON, жмём на кнопку Run once (в виде кнопки Play), Сохранить (в виде дискеты).
Готово. При следующем запуске стрима на указанном вами Twitch канале, в указанный Telegram канал придёт сообщение с картинкой, текстом и кнопкой ведущей на ваш стрим.