Из Telegram
Telegram News API
API для получения новостей из Telegram канала. Автоматически сохраняет все сообщения из канала и предоставляет их через REST API.
Особенности
- Автоматическое получение новых сообщений из канала
- Сохранение сообщений между перезапусками
- REST API для получения сообщений
- Поддержка Docker
- Автоматический перезапуск при сбоях
Установка
Обычная установка
- Клонируйте репозиторий
- Установите зависимости:
npm install
- Скопируйте файл
.env.example
в.env
и заполните необходимые переменные окружения:
BOT_TOKEN=ваш_токен_бота
CHANNEL_USERNAME=@ваш_канал
PORT=3000
Docker установка
- Клонируйте репозиторий
- Создайте файл
.env
с необходимыми переменными окружения (как описано выше) - Запустите через 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
Устранение неполадок
- Убедитесь, что бот добавлен в канал как администратор
- Проверьте правильность токена бота и имени канала в
.env
- При использовании Docker проверьте логи:
docker compose logs -f
- Убедитесь, что файл
messages.json
доступен для записи