Перейти к основному содержимому

Из Telegram

Telegram News API

API для получения новостей из Telegram канала. Автоматически сохраняет все сообщения из канала и предоставляет их через REST API.

Особенности

  • Автоматическое получение новых сообщений из канала
  • Сохранение сообщений между перезапусками
  • REST API для получения сообщений
  • Поддержка Docker
  • Автоматический перезапуск при сбоях

Установка

Обычная установка

  1. Клонируйте репозиторий
  2. Установите зависимости:
npm install
  1. Скопируйте файл .env.example в .env и заполните необходимые переменные окружения:
BOT_TOKEN=ваш_токен_бота
CHANNEL_USERNAME=@ваш_канал
PORT=3000

Docker установка

  1. Клонируйте репозиторий
  2. Создайте файл .env с необходимыми переменными окружения (как описано выше)
  3. Запустите через Docker Compose:
docker-compose up -d

Для обновления контейнера:

docker-compose build && docker-compose up -d

Запуск

Обычный запуск

Для разработки:

npm run dev

Для продакшена:

npm start

Docker запуск

Запуск:

docker compose up -d

Просмотр логов:

docker compose logs -f

Остановка:

docker compose down

API Endpoints

GET /api/news

Возвращает список новостей из Telegram канала.

Формат ответа:

{
"success": true,
"total": 10,
"data": [
{
"title": "Заголовок новости",
"content": "Содержание новости",
"date": "2024-01-01T12:00:00.000Z",
"type": "text",
"channel": "Название канала",
"messageId": 123
}
]
}

Хранение данных

  • В обычной установке сообщения сохраняются в файл messages.json в корне проекта
  • В Docker установке файл messages.json монтируется как volume для сохранения данных между перезапусками контейнера

Требования

  • Node.js 18 или выше
  • Для Docker установки: Docker и Docker Compose

Устранение неполадок

  1. Убедитесь, что бот добавлен в канал как администратор
  2. Проверьте правильность токена бота и имени канала в .env
  3. При использовании Docker проверьте логи: docker compose logs -f
  4. Убедитесь, что файл messages.json доступен для записи