Интересное

Как публиковать новости через 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

Как пользоваться Visual Studio Code

Разработка #IDE #Редакторы кода #Программы #Обзор #Windows Visual Studio Code – это один из наиболее популярных редакторов кода,...

Как обучиться программированию на любом языке

Разработка #C/C#/C++ #Карьера #Веб-дизайн #Разбор #HTML/CSS Поговорим о том, что нужно делать разработчику, чтобы освоить любой язык программирования...

Как измерить и повысить вовлечённость пользователей сайта

Автор: Виталий Купренко ­– маркетинговый копирайтер, компания по разработке мобильных и веб-приложений Cleveroad. Согласно исследованию Gallup, полностью вовлечённые...

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

Разработка #ВКонтакте #Боты #JavaScript Нередко бывает так, что в вашу группу во «Вконтакте» в один момент написали много...

Основные элементы эффективной стратегии конверсии: UX, SEO и CRO

Автор: Питер Джоубс (Peter Jobes) – контент-менеджер, Solvid Digital. По мере выстраивания онлайн-присутствия бизнеса в интернете, применяемые маркетинговые стратегии...

Что такое язык программирования

Разработка #C/C#/C++ #Программы #Обзор #Веб-дизайн #Java Программа на компьютере или смартфоне – это последовательность команд, которую создавали с...

Как создать сайт на WordPress с нуля

Разработка #Настройка #WordPress #Базы данных #Оптимизация Поговорим о том, как создать сайт на базе WordPress и Timeweb. Сайт,...

Как создать сайт для учителя

Разработка #Лендинги #Веб-дизайн #Контент #Конструктор Сайт для учителя – это один из наиболее эффективных способов продвигать свои услуги....

5 главных способов привлечения клиентов из карт и отзывиков

Бизнес #Продажи #Предпринимательство #SEO Реклама. ООО «ТаймВэб». erid: LjN8KQs4Z Мы в MyReviews делаем инструменты для мониторинга и улучшения рейтинга...

Списки в Python и методы работы с ними

Разработка #Python Списки в Python – упорядоченный изменяемый набор объектов произвольных типов, пронумерованных от 0. Они используются для...

Словари в Python и методы работы с ними

Разработка #Обзор #Python В одной из прошлых статей я разбирал списки в Python и методы работы с ними....

Уровни языков программирования: краткий обзор

Разработка #Обзор #Технологии #Железо #Программы Рассказываю о том, почему языки программирования делятся на уровни, что эти уровни обозначают...

Как правильно подключить CSS к HTML

Разработка #Настройка #HTML/CSS Рассмотрим, как применить CSS к сайтам и приложениям.  CSS – это таблица стилей. От нее зависит...

Что такое объектно-ориентированное программирование

Разработка #C/C#/C++ #Программы #Обзор #JavaScript Рассказываю об одной из важнейших парадигм в программировании.  Парадигмы программирования и их виды...

Размещаем бота для Telegram: от выбора хостинга до запуска

Разработка #VDS #Telegram #Боты #JavaScript #Python Чат-боты для Telegram — простой, изящный и легковесный способ вывести общение с клиентами...

Что такое Progressive Web Apps и в чем их преимущества

Разработка #Программы #JavaScript #HTML/CSS #Оптимизация Progressive Web Apps (PWA) — это сайты, которые похожи на приложения для смартфонов не только...

Двумерные массивы в Python и методы работы с ними

Разработка #Разбор #Python Иногда нам приходится использовать таблицы с данными для решения своих задач. Такие таблицы называются матрицами...

Работа в IT: современные тенденции

Разработка #Технологии #Карьера #Менеджмент #Разбор Работа в IT-сфере как была перспективным направлением и путем к успешной карьере, так...

Что такое MVC

Разработка #Обзор #Технологии #Веб-дизайн #Программы Рассказываю об одном из самых удобных паттернов построения приложений на любом языке и...

Может ли робот обрести сознание? И если обретет, то как мы об этом узнаем?

Разработка #Технологии #Тренды #Нейросети #Наука #Разбор Часть экспертов считает, что люди могут запросто создать разумного робота и понять,...