[Из песочницы] Автоматическая публикация записей из сообщества ВКонтакте в 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
Настройка завершена, первый пост будет получен после заданного интервала.
Ссылка на репозиторий, можете внести свой вклад или предложить улучшения.