Skip to content

Bridge-bot for send and recieve VK.com messages in matrix (matrix.org).

License

Notifications You must be signed in to change notification settings

progserega/MatrixVkBot

 
 

Repository files navigation

Бот для общения в сети ВКонтакте из открытой децентрализованной сети Matrix

Бот не требует наличия собственного Matrix-сервера, он работает с правами обычного пользователя, поэтому им можно пользоваться на любом Matrix-сервере.

На данный момент ВКонтакте блокирует доступ к API сообщений пользователя для большинства вновь созданных приложений. Как обходное решение предлагается использовать идентификатор любого другого старого приложения, которому выдали доступ к сообщениям пользователей. Например по ссылке python273/vk_api#219 можно найти APP_ID от приложения Kate Mobile, которому ВК уже предоставил доступ к сообщениям. Если у вас есть приложение с доступом к сообщениям, то можете указать свой идентификатор.

Принцип работы бота:

  1. Пользователь начинает диалог в Матрице с ботом (создаёт прямой чат с ботом), и производит автризацию приложения в ВК для доступа к сообщениям.
  2. При поступлении пользователю новых сообщений в ВК - бот создаёт новую комнату, приглашает туда пользователя и переименовывает эту комнату по названию диалога в ВК, и дублирует туда все сообщения из чата ВКонтакте.
  3. Пользователь может попросить бота вывести список всех диалогов в ВК и открыть нужный диалог в Матрице, используя команды в комнате управления ботом.
  4. Если диалог - групповой чат, то бот к каждой реплике в комнате группового чата добавляет префиксом ФИО отправителя.

Настройка бота:

  1. Заводим учётную запись для бота в Матрице, как для обычного пользователя на каком-либо сервере матрицы (вида @botvk:matrix.org)
  2. Скачиваем себе бота: git clone https://github.com/progserega/MatrixVkBot.git
  3. Ставим зависимости: sudo apt-get install python3-dev python3-pip; pip3 install -r requirements.txt
  4. Копируем файл конфигурации из примера: cp config.py.example config.py
  5. Указываем в файле конфигурации config.py логин-пароль от учётной записи бота, созданной в пункте 1, а так же app-id (см. начало описание бота).
  6. Запускаем бота: ./bot.py
  7. Создаём новый чат с ботом, он должен принять приглашение автоматически.
  8. Пишем в чате ему команду: !login, бот вышлет ссылку для предоставления доступа приложению, app id которого указан в файле config.py, к вашим диалогам и сообщениям.
  9. Нужно согласиться на предоставление доступа, и произойдёт редирект на страничку с предупреждающим текстом " Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту."
  10. Нужно скопировать url-адрес страницы с этим сообщением (именно url, а не текст страницы) и отправить эту ссылку боту.
  11. После этого, если всё пройдёт удачно - бот сообщит, что вы вошли под "Ваше ФИО", и начнёт пересылку сообщений.

Дальнейшая работа бота:

  1. Новые сообщения в диалогах из ВК будут приниматься ботом и отправляться во вновь созданные комнтаты в Матрице с именем диалога в ВК
  2. Для того, чтобы отправить сообщение в диалог в ВК, нужно передать боту команду: !dialogs - бот выведет список диалогов и их порядковые номера.
  3. Необходимо в ответном сообщении боту отправить номер нужного диалога, бот создаст новую комнату (если её нет для этого диалога) и пригласит туда пользователя.
  4. Если пользователь покинет комнату, созданную ботом, то бот отметит это у себя и в случае, если в этот диалог (ВК-шный) придёт новое сообщение из ВК, то бот заново создаст комнату и пригласит заново туда пользователя.

Недоработки:

  • Пока не реализована команда !logout

Реализовано:

ВК->MATRIX:

  1. видео
  2. картинки
  3. перенаправленные сообщения
  4. местоположение
  5. музыка
  6. голосовые сообщения
  7. текстовые сообщения
  8. пересылаемые записи на стене
  9. сообщения о входе и выходе в/из комнаты

MATRIX->VK:

  1. текстовые сообщения
  2. изображения
  3. обычные файлы
  4. видео
  5. Базовая поддержка оформления сообщений, как ответов на предыдущие сообщения.

About

Bridge-bot for send and recieve VK.com messages in matrix (matrix.org).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Shell 0.3%