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

от автора

Функционал

Предыстория

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

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

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

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

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

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

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

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

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

{   "token": "Токен", // Токен от любой страницы ВКонтакте, получить можно тут: https://vk.cc/9bJ69C или сервисный токен.   "group_id": -1, // ID группы ВКонтакте из которой брать новости.   "webhook_url": "https://discordapp.com/api/webhooks/", // Ваш WebHook URL.   "bot_name": "VK2Discord", // Имя вашего WebHook, выcвечиваетеся в качестве имени бота.   "color": "#aabbcc", // Цвет рамки сообщения Discord в формате HEX.   "keywords": ["#новости@VK2DISCORD", "Привет", "яБлоКо"], // Ключевые слова, через запятую, для публикации записи. Оставьте массив пустым, если не хотите использовать данную функцию.   "filter": true, // Публиковать посты только от именни группы, посты от обычных пользователей пропускаются.    "interval": 10000 // Интервал получения новых постов из ВКонтакте в миллисекундах. }

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

  • cd путь до папки со скриптом
  • npm i
  • node index.js

Настройка завершена, первый пост будет получен после заданного интервала.

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


ссылка на оригинал статьи https://habr.com/ru/post/481116/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *