Автоматическая публикация записей из сообщества или страницы ВКонтакте в Discord

Пример работы

Предыстория


Я являюсь создателем, среднего по количеству участников, Discord сервера ~5000 участников.
В один день мне понадобилось публиковать записи из группы ВКонтакте с последними новостями игры, ВКонтакте не умеет работать с вебхуками, поэтому пришлось идти в Google и искать подходящие решения.

Было найдено несколько решений, но либо они работали не так как хотелось и имели сложную настройку, либо не работали вовсе. Тогда у меня были некоторые знания JavaScript поэтому было принято решение писать самому.

Так появился VK2Discord


Мною был написана первая версия скрипта, которая только могла получать текст и одну картинку из поста и отправлять это все сообщением в Discord канал с использованием вебхуков. Скрипт был опубликован на просторы Github. После некоторого времени я понял что нужны кардинальные улучшения и полностью переписал скрипт добавив:

  • Обработку всех вложений
  • Обработку репостов
  • Поддержку LongPoll API ВКонтакте
  • Выборку постов по ключевым словам и #хештегам
  • Получение записей со стены обычных пользователей
  • Возможность использования скрипта для нескольких групп ВКонтакте и каналов Discord
  • Возможность добавления любого текста перед отправкой
  • Поддержку до 10 изображений в 1 сообщении


Пример работы скрипта


Настройка скрипта


1. Скачиваем и устанавливаем Node.js >= 14 с официального сайта.

2. Скачиваем скрипт из репозитория и распаковываем его в удобное место.

3. Настраиваем в папке, куда вы распаковали скрипт, файл config.json:

Воспользуйтесь подробной инструкцией по настройке, она поможет вам не допустить ошибок при настройке файла конфигурации.

Заполненный пример config.json
Также отдельно описаны все поля файла конфигурации

4. Открываем командную строку и запускаем скрипт командами:

  • cd путь до папки со скриптом
  • npm i
  • npm start


Если вы используете ключ-доступа пользователя, то первый пост будет получен после заданного интервала, в случае с LongPoll API уведомления приходят в режиме реального времени, соответственно записи отправляются в Discord сразу же после их публикации ВКонтакте.

Ссылка на репозиторий, можете внести свой вклад или предложить улучшения.

Средняя зарплата в IT

113 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 10 037 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 12

    +1
    А зачем постоянно смотреть в API за изменениями, если можно настроить вебхуки из сообщества?
      0
      Если вы захотите получить посты из чужой группы вебхуки сообщества вам не помогут.
        0
        Это частный случай.
          0
          Хорошее замечание, учту в следующих версиях.
      0
      Я являюсь создателем, среднего по количеству участников, Discord сервера ~2000 участников.
      Хм… а разве можно свой сервер discord создать? Я не очень в курсе.
        0
        И не один. Всегда можно было. И бесплатно. Дискорд зарабатывает на платных свистоперделках, которые идут навесом к серверу.
          0

          Вероятно, вы имеете в виду "новый инстанс на своих мощностях", когда как на самом деле это "мета-комната с кучей каналов", которая создаётся путем нажатия кнопки "создать сервер".

            0
            Забавно, был очень слабо в теме, недавно узнал от знакомых молодых ребят, что они общаются в основном в дискорде и создают сервера. Я сразу представил себе что-то типа поднятие своего IRC сервачка как было 10-15 лет назад. Уж было подумал что школьники теперь криптопанки, не признающие централизованные чаты. А они просто кнопку жмякают.
              0
              То есть это простая подмена понятий, и слово «сервер» тут скорее означает свой канал по типу бота телеграма?
              0

              В дискорде сервер — это просто большой чат с голосовыми и текстовыми каналами. Создаётся бесплатно и сколько нужно.

              0

              Хороший гайд, хочу попробовать кое что улучшить, если получится, то отпишу вам в ЛС.
              А так автор молодец.

                0
                Можете предлагать PR на Github

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое