DISCONTINUED/Поддержка прекращена
It still works, but I no longer need this project or care about it. (the code is terrible though) Бот до сих пор работает, но он мне уже не нужен, да и интерес в нём пропал. (код ужасный, написан на коленке, я знаю)
У вас есть некая беседа в VK, которую вы хотели бы перенести в Telegram, однако в ту беседу до сих пор приходят важные оповещения, туда пересылают документы
Да, плохо, но не всё потеряно
Ведь можно запустить бота, который будет каждое сообщение из беседы VK в ваш чат в Telegram
- Безопасность. Вконтакте не особо задумываетсяо вашей безопасности и все даже удалённые сообщения хранятся у них. В любой момент этим могут воспользоваться заинтересованные личности
- Скорость . Вконтакте работает медленно, сообщения долго грузятся
- Приоритеты. К сожалени, главеный приоритет Вконтакте сейчас - деньги, а не юзабельность/скорость/безопасность. Вот так мы и получаем бесполезные VK Clips, VK Connect и модный VK Messenger
- Да и вообще, у них стикеры платные
- Баги, баги, много багов. Только вот вместе иправления ты слышишь "мы добавили в бэклог, скоро исправим". Нет, не исправляете
- Плохая документация API, которая не всегда отражает истину
- Ссылки на пункты статьи не имеют аттрибутов
id
, то есть нельзя сделатьvk.com/dev/метод?#пункт
. VK API имеет свой необычный и совершенно неудобный механизм ссылок на пункты
Бот находится в беседе VK и в чате Telegram
Бот слушает беседу и ждёт новое сообщение. Как только оно приходит бот приводит сообщение в подобающий вид и отправляет его в другую беседу в Telegram
VK
Telegram
документ_0
и документ_1
это ссылки на сообщения, которые содержат документ
- Ключ доступа одного из администраторов группы. Получить его можно авторизовавшись через приложение VK. Удобно это сделать можно тут
- Почему не токен группы? К сожалению, в ВК есть баг, из-за которого могут теряться вложения, поэтому нужно перезапрашивать данные о сообщении
- Бот группы не имеет доступа к истории сообщений, а юзер имеет. Почему? Я не знаю
- Они собираются это изменить, но навряд ли это скоро произойдёт
- Код программы открытый, так что токены чужие никто воровать не собирается
- Бот в Telegram, который будет находиться в другой беседе и слать туда сообщения. Создать бота можно написав пользователю @BotFather
- ID беседы VK. Для пользователь, от лица которого будет работать бот должен зайти в беседу и извлечь ID из адресной строки. Например, в адресе
https://vk.com/im?sel=c123456
,123456
- это и есть ID беседы - ID чата Telegram. Получить его способов много, однако я предпочитаю просто пригласить в беседу @getidsbot
pip install forwarding-bot
git clone https://github.com/dhvcc/forwarding-bot.git
cd forwarding-bot
pip install .
Вы можете установить дополнительные зависимости
speedups
ускорят работу бота, а dev
установит необходимые зависимости для разработки
pip install forwarding-bot[dev]
# Вы должны находится в папке, где расположен setup.py (если скачивали с GitHub)
pip install .[speedups]
pip install forwarding-bot[speedups,dev]
В папке, откуда будете запускать бота создайте файл .forwarding-bot
и запишите в него следующее
[forwarding-bot]
BOT_TOKEN =
USER_TOKEN =
SOURCE_ID =
DESTINATION_ID =
Далее заполните файл данными. Про получение данных обратитесь к пункту Что нужно?
- В
BOT_TOKEN
запишите ключ доступа Telegram бота, который вы получили от BotFather - В
USER_TOKEN
запишите ключ доступа одного из администраторов беседы VK - В
SOURCE_ID
запишите ID беседы VK - В
DESTINATION_ID
запишите ID чата Telegram
После настройки, зайдите в папку, где лежит ваш .forwarding-bot
и запустите python -m forwarding-bot
(что бы запустить в фоновом режиме добавьте в конце команды &
)
...
Пулл реквесты приветствуются. Что бы внести большие изменения, пожалуйста, откройте сначала issue
, что бы обсудить изменения
Рекоммендуется использование pre-commit
. Установить git хуки pre-commit install -t=pre-commit -t=pre-push