19 December 2019

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

Social networks and communities
Пример работы

Предыстория


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

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

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


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

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


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


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


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

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

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

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

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

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

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


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

Ссылка на репозиторий, можете внести свой вклад или предложить улучшения.
Tags:ВКонтактеDiscordWebhooksJavaScript
Hubs: Social networks and communities
+6
14.3k 23
Comments 12
Popular right now
Javascript разработчик
from 130,000 to 180,000 ₽ArtezioНижний Новгород
Javascript разработчик
from 160,000 to 220,000 ₽ArtezioМосква
JavaScript разработчик
from 150,000 to 200,000 ₽SportrecsМоскваRemote job
JavaScript разработчик (React)
from 80,000 to 150,000 ₽Баланс-ПлатформаМоскваRemote job
Fullstack JavaScript Developer
from 180,000 to 220,000 ₽FoodtronicsМоскваRemote job