Skip to content

Реализовать воркер для публикации постов в Telegram (с локальным хранением токена) #8

@krenar-rm

Description

@krenar-rm

Сервис: Publishing Worker

В качестве пилотной интеграции выбран Telegram. Для упрощения первоначальной реализации, токен для доступа к Telegram API будет временно храниться в конфигурации самого воркера.

Цель: Создать асинхронный воркер, который обрабатывает события из Kafka, выполняет публикацию в Telegram, используя локально сохраненный токен, и отправляет событие с результатом обратно в систему.

Критерии приемки (Acceptance Criteria):

  • Подписка на топик Kafka: Воркер успешно подписывается на топик publications.pending и потребляет из него сообщения.
  • Токен доступа для Telegram-бота и Chat ID целевого канала/группы получаются напрямую из конфигурации Publishing Worker (например, из переменных окружения).
  • Реализован клиент для взаимодействия с Telegram Bot API (например, с помощью github.com/go-telegram-bot-api/telegram-bot-api/v5).
  • Воркер должен уметь отправлять текстовые сообщения (sendMessage). Пока только текст.
  • При сбоях в работе с Telegram API (например, сетевые ошибки 429 Too Many Requests, 5xx ошибки сервера) воркер реализует логику повторных попыток с задержкой.
  • После завершения попытки публикации (успешной или окончательно проваленной) воркер формирует новое событие о результате.
  • Обязательные поля: content_id, social_account_id, status ("success" или "failed"), published_at (если успешно), external_post_id (ID сообщения в Telegram), error_details (если ошибка).
  • Сформированное событие о результате отправляется в топик publications.results.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions