Возможности:
- Пересылка текстовых сообщений из ВК в Telegram и наоборот
- Пересылка изображений/стикеров/аудио/видео/документов/голосовых сообщений (Только из ВК в Telegram!)
- Пересылка стикеров из Telegram в ВК
- Поддержка личных сообщений и групповых чатов
- Удобный файл конфигурации
- Поддержка прокси для Telegram
Установка
Для работы вам понадобиться:- Python 3
- Git клиент ( я использую Git Bash )
- Аккаунт в ВК ( будем использовать в качестве ботинка )
- Бот в Telegram ( можно создать через BotFather )
- (При желании) Хостинг, на котором будет работать бот (Например, PythonAnywhere)
git clone https://github.com/Whiletruedoend/Vk-to-telegram-transfer-bot
cd Vk-to-telegram-transfer-bot
pip3 install -r requirements.txt
или же (если вдруг не сработало):
python -m pip install -r requirements.txt
Запуск в docker
Для запуска в docker'е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить командуdocker build . -t vk_to_telegram_transfer_bot
Для запуска образа необходимо в корневой директории проекта выполнить команду
docker run vk_to_telegram_transfer_bot
Запуск при помощи docker-compose
Для запуска в docker'е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить командуdocker-compose up -d
Настройка бота
Все настройки будут производиться в файле config.py Для начала откроем его и вставим логин и пароль от аккаунта в ВК (таблицы ‘vk_login’ и ‘vk_password’ ) и токен бота в Telegram’e ( таблица ‘telegram_token’ )Далее мы будем настраивать чат для передачи сообщений. Для этого необходимо:
- Создать чат в Telegram’e
- Добавить туда бота
- Написать ‘Дай ID’, после чего бот должен написать вам ID чата
- Взять ID чата/пользователя, откуда/куда будут пересылаться сообщения
- Добавить в конфиг поля:
setCell( "t_-<telegramid>", '<chatid/userid>' )
, где <chatid/userid> - локальный ID чата для бота (!), либо ID пользователя, с которым будет связан чат в Telegram’e, а - - тот самый ID чата, который мы получили, прописав команду ‘Дай ID’. Отбратите внимание, что - всегда идёт с минусом в начале, кроме того, знаки <> прописывать не нужно! ‘Живой пример’:
setCell( "vk_1", '-249416176' )
setCell( "t_-249416176", '1' )
Здесь мы видим, что для аккаунта ВК из чата 1 все сообщения будут пересылаться в чат '-249416176' в Telegram, и наоборот. Надеюсь, всё понятно, по какому принципу нужно всё делать. P.S. Я дальнейшем я планирую облегчить систему создания тоннелей ВК <===> телега, но, пока что, пусть всё останется так.
Важно!
У бота в Telegram должен быть:- Отключен режим приватности ( Bot Father —> Ваш бот —> Bot Settings —> Group Privacy —> Turn Off )
- Включена поддержка групповых чатов ( Bot Father —> Ваш бот —> Bot Settings —> Allow groups? Turn groups On )