An open API service indexing awesome lists of open source software.

https://github.com/temm4ancki/vk-to-tg-post

Бот отслеживает посты из сообщества ВКонтакте и пересылает их в Telegram-канал
https://github.com/temm4ancki/vk-to-tg-post

telegram vk

Last synced: about 1 month ago
JSON representation

Бот отслеживает посты из сообщества ВКонтакте и пересылает их в Telegram-канал

Awesome Lists containing this project

README

          

# VK to Telegram Bot

Этот бот отслеживает посты из сообщества ВКонтакте и пересылает их в Telegram-канал.
Написан через Qodo и модели Claude 3.7 Sonnet

## Возможности

- Мониторинг постов на стене сообщества ВКонтакте
- Пересылка постов с текстом и медиафайлами в Telegram-канал
- Отслеживание обработанных постов для избежания дубликатов
- Настраиваемый интервал проверки
- Подробное логирование

## Требования

- Node.js
- Токен доступа API ВКонтакте с разрешениями на доступ к стене
- Токен бота Telegram (создайте через [@BotFather](https://t.me/BotFather))
- Telegram-канал, где бот является администратором. ID можно получить через [@UserInfoToBot](https://t.me/UserInfoToBot)

## Установка

1. Клонируйте репозиторий:
```
git clone https://github.com/Temm4ancki/VK-to-TG-post.git
cd VK-to-TG-post
```

2. Установите зависимости:
```
npm install
```

3. Создайте файл `.env` на основе шаблона `.env.template`:
```
cp .env.template .env
```

3. Создайте файл `.env`, указав свои учетные данные:
- `VK_ACCESS_TOKEN`: Ваш токен доступа API ВКонтакте
- `VK_GROUP_ID`: имя после домена ВК (Пример vk.com/**shytki_i_prikoli**)
- `TELEGRAM_BOT_TOKEN`: Токен вашего бота Telegram
- `TELEGRAM_CHANNEL_ID`: ID или имя пользователя вашего Telegram-канала (с префиксом @)

## Получение токена доступа API ВКонтакте

1. Создайте приложение ВКонтакте на [vk.com/dev/apps](https://dev.vk.com/ru/admin/create-app) (тип: Мини-приложение)
2. Получите токен доступа (Сервисный ключ), в настройках приложения. Мини-приложение/Разработка/Ключи доступа

## Запуск бота

Соберите и запустите бота:

```
npm run build
npm start
```

Для разработки с автоматическим перезапуском:

```
npm run watch
```

## Как это работает

1. Бот получает последние посты из указанного сообщества ВКонтакте
2. Он фильтрует посты, которые уже были обработаны
3. Для каждого нового поста он:
- Извлекает текстовое содержимое
- Извлекает фото-вложения
- Извлекает ссылки-вложения
- Форматирует и отправляет всё в Telegram-канал
4. Бот отслеживает обработанные посты в JSON-файле
5. Он повторяет этот процесс с настроенным интервалом

## Настройка

Вы можете настроить поведение бота, изменив файл `.env`:

- `CHECK_INTERVAL_MS`: Как часто проверять наличие новых постов (в миллисекундах)
- `STORAGE_FILE_PATH`: Где хранить список обработанных постов
- `LOG_LEVEL`: Уровень детализации логирования (debug, info, warn, error)