Интересное

Как публиковать новости через API в любом паблике. Пошаговая инструкция

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

Подготовка

Мы настроим автопостинг на примере API, который отдает информацию о коронавирусе. Также будем использовать:

  • язык программирования Node.js;
  • модули VK-Promise и Node-Fetch;
  • редактор исходного кода Visual Studio Code;
  • виртуальный сервер (так как не все могут держать компьютер всегда включенным).

VDS советую брать в Timeweb — здесь высокая скорость, нормальные цены, и сразу можно выбрать установку Node.js и нужной операционной системы. Я использую Ubuntu 18.04.

Настройка

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

1. Указываем вышеупомянутые модули и токен своей страницы:

 const fetch = require("node-fetch"); var VK = require("VK-Promise"), vk = new VK(" "); // В кавычки вставляем токен своей страницы, который можно получить на специальном сайте, выбрав вариант VK API.

Должно получиться так:

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

 var startScript = (new Date().getHours()+1)%24;  if(new Date().getMinutes() == 0) // Таким образом указываем, что минут должно быть «0».  postvk(); // Эту функцию разберем далее.  loop();  function loop(){  var date = new Date();  if(date.getMinutes() == 0 && date.getHours()==startScript){  startScript = (startScript+1)%24 ;  postvk();  }  setTimeout(loop,30000); // Так задаем проверку раз в 30 минут.  }

3. Так как мы будем использовать await, добавляем к функции async:

 async function postvk(){

4. Используя любой открытый API, который отдает данные в виде JSON (это общий формат для представления значений и объектов), мы берем информацию:

 let urlru = 'https://thevirustracker.com/free-api?countryTotal=RU'; // Ссылка взята из документации API, с которым мы работаем.  let response = await fetch(urlru);  let ru = await response.json();

5. С помощью VK-Promise делаем пост в группе:

 return vk.wall.post({

6. В параметрах указываем строки и массивы, из которых будем брать данные:

 owner_id: -193422280, // ID вашей группы (отрицательное число).  from_group: 1, message: (`Коронавирус в РоссииnСлучаев сегодня:  ${ru.countrydata[0].total_new_cases_today}nСмертей сегодня: ${ru.countrydata[0].total_new_deaths_today}nВсего случаев: ${ru.countrydata[0].total_cases}nУмерло: ${ru.countrydata[0].total_deaths}nВыздоровело: ${ru.countrydata[0].total_recovered}nСерьезных случаев: ${ru.countrydata[0].total_serious_cases}`),  attachments: ('photo-193422280_457239018') // Таким образом добавляем фотографию в пост.  })  }

7. Нажимаем кнопку «Сохранить» и указываем имя и расширение файла в виде “index.js”. 

8. Используя данные, которые мы получили при создании сервера, подключаемся к нему по протоколу SSH и устанавливаем Node.js. Если вы заказали VDS в Timeweb и указали в дополнительном софте Node.js, то устанавливать еще раз не нужно (этот шаг пропускаем). 

9. Подключаемся к серверу по протоколу SFTP, создаем папку с любым названием и копируем в нее наш скрипт.

10. Подключаемся по SSH и прописываем в консоли:

 cd имя_папки // Здесь указываем название папки, которую создали на предыдущем шаге.  npm i VK-Promise@0.3.2  npm i node-fetch

11. Запускаем скрипт:

 node index.js

Чтобы скрипт не выключался после выхода из консоли, используем screen:

 sudo apt install screen  screen node index.js

Вот что получилось (пример поста):

Межтекстовые Отзывы
Посмотреть все комментарии
guest

Как легально увеличить лайки в Ютубе?

Лайки в Youtube и легальные способы их увеличить. Чего не стоит делать при накрутке реакций, и как сделать...

Как создать чат-бота ВКонтакте с расписанием уроков

Разработка #Серверы #ВКонтакте #Боты #JavaScript #Ubuntu Для более быстрого просмотра расписания лекций я использую простого чат-бота ВК, которым, помимо...

Как создать рекламный сайт

Разработка #Монетизация #Реклама #Конструктор Рекламный сайт – это ресурс, нацеленный на продажу товаров или услуг. Вся информация, находящаяся...

Push-уведомления: типы, назначение, советы по созданию

Разработка #Конверсия #Интернет-магазин #Веб-дизайн #Продажи Сегодня поговорим о push-уведомлениях. Как они работают, зачем нужны и какими должны быть.  Что такое...

Как установить Git на Debian 10

Разработка #Серверы #OpenSource #Debian Система контроля версий (например, Git) позволяет регистрировать изменения в файлах, с которыми работают разработчики,...

Язык программирования C#: краткая история, возможности и перспективы

Разработка #C/C#/C++ #Программы #Обзор Обзорная статья на тему С#. Кратко рассказываем о том, зачем этот язык нужен, где его...

7 самых популярных фреймворков JavaScript

Разработка #Фреймворки #Обзор #JavaScript Статья посвящена самым популярным фреймворкам, библиотекам и инструментам JavaScript. Каждый из них может значительно облегчить...

Что такое скрипт

Разработка #Разбор #JavaScript #PHP #Windows Активные пользователи компьютера время от времени сталкиваются со словом «скрипт», не всегда понимая,...

Что такое баг: поговорим об ошибках в программировании

Разработка #Программы #Обзор #Игры #Ошибки Ошибки в программах – дело обыденное. Приложения зависают, вылетают, перестают запускаться. В простейшем случае пользователь...

Преимущества и недостатки WordPress

Разработка #Обзор #WordPress WordPress довольно старая система управления содержимым сайтов (сокращенно — CMS), вебмастера и администраторы с ней...

Как установить Java Development Kit

Разработка #IDE #Linux #Разбор #Java Для разработки на Java должен быть установлен комплект разработчика приложений – Java Development Kit...

Как пользоваться редактором Atom

Разработка #GitHub #Редакторы кода #HTML/CSS #PHP Atom – это многофункциональный текстовый редактор от разработчиков GitHub. Он поддерживает огромное...

Что такое дополненная реальность

Разработка #Google #Продажи #Технологии #Сервисы Выбирали когда-нибудь кроссовки или диван в интернете? Не очень удобно, верно? Было бы...

Верстка сайта: инструкция для начинающих

Разработка #Веб-дизайн #HTML/CSS Разработка сайта – это долгая и плодотворная работа, которая, как правило, разделена на несколько этапов....

Как научиться читать код сайта и зачем это нужно, если вы не программист

Разработка #Браузеры #Веб-дизайн #HTML/CSS Часто возникают ситуации, когда необходимо проанализировать содержимое веб-страницы: посмотреть description, узнать размер какого-то элемента...

Что такое виджет и как им пользоваться

Разработка #Веб-дизайн #JavaScript #Оптимизация #Windows Разработчики софта и владельцы сайтов стараются упростить процесс взаимодействия со своим продуктом. Одним из...

GitHub включил по умолчанию механизм защиты от утечек данных

Новости #GitHub #Сервисы #Безопасность Реклама. ООО «ТаймВэб». erid: LjN8K4hV8 Сервис GitHub включил защиту от попадания в публичный репозиторий приватных...

Руководство по работе с Kubernetes для начинающих

Разработка #Серверы #Настройка #Docker #Ubuntu #CentOS Kubernetes – это портативная расширяемая платформа для управления контейнерами на серверах. Она...

В Windows 11 добавится поддержка USB 4 2.0 со скоростью передачи данных до 80 Гбит/с

Новости #Обновления #Windows Реклама. ООО «ТаймВэб». erid: LjN8K8PQJ Корпорация Microsoft начала распространять пакет функциональных обновлений KB5034848 для Windows 11...

Выбор темы для интернет-магазина на WordPress

Разработка #Плагины #Интернет-магазин #Веб-дизайн #Шаблоны #WordPress «WordPress для блога!» — говорили они. «Но ведь… есть плагины и темы…»...