Как протестировать отправку анонсов в Telegram
Есть три способа протестировать работу автоматической отправки анонсов в Telegram.
Способ 1: Локальное тестирование (самый быстрый)
Этот способ позволяет протестировать отправку сообщений без необходимости настраивать GitHub Actions и пушить изменения в репозиторий.
Шаг 1: Установка зависимостей
pip install pyyaml requests
Шаг 2: Получение данных для Telegram
Вам понадобятся:
- TELEGRAM_BOT_TOKEN - токен вашего бота (от @BotFather)
- TELEGRAM_CHAT_ID - ID вашего канала или
@usernameдля публичных каналов
Шаг 3: Запуск теста
Вариант А: С переменными окружения
export TELEGRAM_BOT_TOKEN="ваш_токен"
export TELEGRAM_CHAT_ID="ваш_chat_id"
python3 test_telegram.py
Вариант Б: С указанием конкретного поста
export TELEGRAM_BOT_TOKEN="ваш_токен"
export TELEGRAM_CHAT_ID="ваш_chat_id"
python3 test_telegram.py _posts/2025-09-18-what_i_read_in_2025.md
Вариант В: Интерактивный режим
Просто запустите скрипт - он запросит необходимые данные:
python3 test_telegram.py
Скрипт автоматически:
- Использует последний пост из папки
_posts/(если не указан другой) - Парсит метаданные поста
- Показывает превью сообщения
- Запрашивает подтверждение перед отправкой
- Отправляет сообщение в Telegram
Пример вывода
🧪 Тест отправки анонса в Telegram
📄 Используется последний пост: _posts/2025-09-18-what_i_read_in_2025.md
📝 Чтение поста: _posts/2025-09-18-what_i_read_in_2025.md
📋 Данные поста:
Заголовок: Список прочитанного за 2025 год
Дата: 2025-09-18
Описание: Список прочитанной литературы за 2025 год
URL: https://xtoman.ru/2025/09/18/what_i_read_in_2025/
Отправить анонс в Telegram? (y/n): y
📤 Отправка сообщения...
✅ Сообщение успешно отправлено в Telegram!
Заголовок: Список прочитанного за 2025 год
✅ Тест пройден успешно!
Способ 2: Ручной запуск через GitHub Actions
Этот способ позволяет протестировать работу workflow в GitHub Actions без создания нового коммита.
Шаг 1: Настройка секретов
Убедитесь, что в вашем репозитории настроены секреты:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDBLOG_URL(опционально)
Шаг 2: Запуск workflow
- Перейдите в ваш репозиторий на GitHub
- Откройте вкладку Actions
- Выберите workflow “Уведомление в Telegram о новом посте”
- Нажмите Run workflow (справа)
- В поле “Путь к тестовому посту” укажите путь к посту, например:
_posts/2025-09-18-what_i_read_in_2025.md - Нажмите Run workflow
Workflow запустится и отправит тестовое сообщение в ваш Telegram-канал.
Преимущества
- Тестирование в реальной среде GitHub Actions
- Проверка корректности настроек секретов
- Возможность посмотреть логи выполнения
Способ 3: Создание тестового поста
Этот способ имитирует реальную ситуацию публикации нового поста.
Шаг 1: Создайте тестовый пост
Создайте файл в папке _posts/:
---
layout: post
title: "Тестовый пост для проверки Telegram уведомлений"
date: 2025-01-15
description: "Это тестовый пост для проверки работы автоматической отправки анонсов в Telegram"
tags: [Тест]
---
Это тестовый пост.
Шаг 2: Коммит и push
git add _posts/2025-01-15-test-post.md
git commit -m "Тестовый пост для проверки Telegram"
git push
Шаг 3: Проверка
- Перейдите в раздел Actions вашего репозитория
- Дождитесь завершения workflow
- Проверьте ваш Telegram-канал - должно прийти уведомление
Шаг 4: Удаление тестового поста
После успешного теста удалите тестовый пост:
git rm _posts/2025-01-15-test-post.md
git commit -m "Удаление тестового поста"
git push
Устранение проблем
Локальный тест не работает
- Ошибка “Module not found”: Установите зависимости:
pip install pyyaml requests - Ошибка отправки в Telegram: Проверьте токен бота и Chat ID
- Бот не отправляет сообщения: Убедитесь, что бот добавлен как администратор в канал
GitHub Actions не работает
- Workflow не запускается: Проверьте, что файл находится в
.github/workflows/ - Ошибка “secrets not found”: Настройте секреты в Settings → Secrets and variables → Actions
- Workflow завершается с ошибкой: Проверьте логи выполнения в разделе Actions
Сообщение не приходит в Telegram
- Проверьте, что бот имеет права администратора в канале
- Убедитесь, что Chat ID указан правильно (для публичных каналов можно использовать
@username) - Проверьте логи в GitHub Actions для детальной информации об ошибке
Рекомендации
- Сначала используйте локальный тест (Способ 1) - это самый быстрый способ проверить работу
- Затем протестируйте через GitHub Actions (Способ 2) - для проверки правильности настроек
- При необходимости создайте тестовый пост (Способ 3) - для полной имитации реальной публикации
После успешного тестирования система будет автоматически отправлять анонсы при публикации новых постов!