Бот не требует наличия собственного Matrix-сервера, он работает с правами обычного пользователя, поэтому им можно пользоваться на любом Matrix-сервере.
На данный момент ВКонтакте блокирует доступ к API сообщений пользователя для большинства вновь созданных приложений. Как обходное решение предлагается использовать идентификатор любого другого старого приложения, которому выдали доступ к сообщениям пользователей. Например по ссылке python273/vk_api#219 можно найти APP_ID от приложения Kate Mobile, которому ВК уже предоставил доступ к сообщениям. Если у вас есть приложение с доступом к сообщениям, то можете указать свой идентификатор.
- Пользователь начинает диалог в Матрице с ботом (создаёт прямой чат с ботом), и производит автризацию приложения в ВК для доступа к сообщениям.
- При поступлении пользователю новых сообщений в ВК - бот создаёт новую комнату, приглашает туда пользователя и переименовывает эту комнату по названию диалога в ВК, и дублирует туда все сообщения из чата ВКонтакте.
- Пользователь может попросить бота вывести список всех диалогов в ВК и открыть нужный диалог в Матрице, используя команды в комнате управления ботом.
- Если диалог - групповой чат, то бот к каждой реплике в комнате группового чата добавляет префиксом ФИО отправителя.
- Заводим учётную запись для бота в Матрице, как для обычного пользователя на каком-либо сервере матрицы (вида @botvk:matrix.org)
- Скачиваем себе бота:
git clone https://github.com/progserega/MatrixVkBot.git
- Ставим зависимости:
sudo apt-get install python3-dev python3-pip; pip3 install -r requirements.txt
- Копируем файл конфигурации из примера:
cp config.py.example config.py
- Указываем в файле конфигурации
config.py
логин-пароль от учётной записи бота, созданной в пункте 1, а так же app-id (см. начало описание бота). - Запускаем бота:
./bot.py
- Создаём новый чат с ботом, он должен принять приглашение автоматически.
- Пишем в чате ему команду:
!login
, бот вышлет ссылку для предоставления доступа приложению, app id которого указан в файлеconfig.py
, к вашим диалогам и сообщениям. - Нужно согласиться на предоставление доступа, и произойдёт редирект на страничку с предупреждающим текстом " Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту."
- Нужно скопировать url-адрес страницы с этим сообщением (именно url, а не текст страницы) и отправить эту ссылку боту.
- После этого, если всё пройдёт удачно - бот сообщит, что вы вошли под "Ваше ФИО", и начнёт пересылку сообщений.
- Новые сообщения в диалогах из ВК будут приниматься ботом и отправляться во вновь созданные комнтаты в Матрице с именем диалога в ВК
- Для того, чтобы отправить сообщение в диалог в ВК, нужно передать боту команду:
!dialogs
- бот выведет список диалогов и их порядковые номера. - Необходимо в ответном сообщении боту отправить номер нужного диалога, бот создаст новую комнату (если её нет для этого диалога) и пригласит туда пользователя.
- Если пользователь покинет комнату, созданную ботом, то бот отметит это у себя и в случае, если в этот диалог (ВК-шный) придёт новое сообщение из ВК, то бот заново создаст комнату и пригласит заново туда пользователя.
- Пока не реализована команда !logout
ВК->MATRIX:
- видео
- картинки
- перенаправленные сообщения
- местоположение
- музыка
- голосовые сообщения
- текстовые сообщения
- пересылаемые записи на стене
- сообщения о входе и выходе в/из комнаты
MATRIX->VK:
- текстовые сообщения
- изображения
- обычные файлы
- видео
- Базовая поддержка оформления сообщений, как ответов на предыдущие сообщения.