Настройка автоматической отправки анонсов в Telegram
Это руководство поможет вам настроить автоматическую отправку анонсов новых постов блога в Telegram-канал.
Шаг 1: Создание Telegram бота
- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Следуйте инструкциям:
- Введите имя вашего бота (например, “Анонсы блога”)
- Введите username бота (должен заканчиваться на
bot, напримерmy_blog_announcements_bot)
- Скопируйте токен бота, который выдаст BotFather (выглядит как
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
Шаг 2: Добавление бота в канал
- Откройте ваш Telegram-канал
- Перейдите в настройки канала (правый верхний угол → “Информация о канале”)
- Нажмите “Администраторы” → “Добавить администратора”
- Найдите вашего бота по username
- Дайте боту права на отправку сообщений (минимум “Отправка сообщений”)
- Сохраните изменения
Шаг 3: Получение Chat ID канала
Способ 1: Через другого бота
- Найдите бота @userinfobot или @RawDataBot
- Добавьте его в ваш канал как администратора (или перешлите сообщение из канала боту)
- Бот покажет ID канала (формат
-1001234567890для публичных каналов или-123456789для приватных)
Способ 2: Через URL с публичным каналом
Если ваш канал публичный и имеет username (например, @my_blog_channel), используйте формат: @my_blog_channel
Способ 3: Через API (для приватных каналов)
- Добавьте в канал любого бота (например, @getidsbot)
- Отправьте сообщение в канал
- Перейдите по ссылке:
https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates - Найдите в ответе
"chat":{"id":-1001234567890}— это и есть ваш Chat ID
Шаг 4: Настройка секретов в GitHub
- Перейдите в ваш репозиторий на GitHub
- Откройте Settings → Secrets and variables → Actions
- Нажмите New repository secret
- Добавьте следующие секреты:
TELEGRAM_BOT_TOKEN
- Name:
TELEGRAM_BOT_TOKEN - Value: токен вашего бота (из шага 1)
TELEGRAM_CHAT_ID
- Name:
TELEGRAM_CHAT_ID - Value: ID вашего канала (из шага 3) или username в формате
@channel_username
BLOG_URL (опционально)
- Name:
BLOG_URL - Value: URL вашего блога (по умолчанию используется
https://xtoman.ru) - Если ваш блог находится по другому адресу, укажите его здесь
Шаг 5: Проверка работы
- Создайте новый пост в папке
_posts/(или измените существующий) - Закоммитьте и запушьте изменения в репозиторий
- Перейдите в раздел Actions вашего репозитория на GitHub
- Дождитесь завершения workflow “Уведомление в Telegram о новом посте”
- Проверьте ваш Telegram-канал — должен появиться анонс нового поста
Формат анонса
Анонс включает:
- Заголовок поста (title из frontmatter)
- Описание поста (description из frontmatter, обрезанное до 200 символов)
- Дату публикации
- Ссылку на пост в блоге
Устранение неполадок
Бот не отправляет сообщения
- Проверьте, что бот добавлен как администратор в канал
- Убедитесь, что у бота есть права на отправку сообщений
- Проверьте правильность Chat ID (для публичных каналов можно использовать
@username)
Ошибка в GitHub Actions
- Проверьте логи workflow в разделе Actions
- Убедитесь, что все секреты настроены правильно
- Проверьте, что токен бота действителен
Сообщение не отображается корректно
- Убедитесь, что в frontmatter поста заполнены поля
titleиdescription - Проверьте формат даты (должен быть
YYYY-MM-DD)
Дополнительные настройки
Если вы хотите изменить формат сообщения, отредактируйте файл .github/workflows/telegram-notify.yml в секции формирования сообщения.