Работа со строками в JavaScript

Разработка #Настройка #JavaScript Строка в JavaScript – это неизменяемая, упорядоченная последовательность 16-битных значений, каждое из которых представляет собой...

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

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

Максимальная производительность 1С-Битрикс: Настройка виртуальной машины

Системы управления контентом (CMS) стали неотъемлемой частью современных веб-проектов, предоставляя множество возможностей для разработки и управления сайтами. 1С-Битрикс —...

Что такое API

Разработка #Веб-дизайн #API #OpenSource #Безопасность Краткий ликбез по API. Выясняем, что он собой представляет, как работает и зачем нужен....

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

Разработка #Telegram #ВКонтакте #JavaScript В этой статье я расскажу и покажу, как настроить автоматический постинг любой информации из...

Метатег viewport: почему он важен и как его правильно использовать

Разработка #Настройка #HTML/CSS #Оптимизация Viewport — это область, которую видит пользователь на экране, когда заходит на страницу сайта...

Что за движок Amiro.CMS?

Разработка #Фреймворки #Обзор #MySQL #PHP Продолжаю рассказывать о CMS, о которых мало говорят (по сравнению с WordPress, конструкторами веб-сайтов...

Лучшие хостинги серверов Minecraft

Мнение рынка #Хостинг #Игры #Подборка Реклама. ООО «ТаймВэб». erid: LjN8KWY7s Всегда хотели запустить собственный сервер игры, но не...

Как работать с фоновыми рисунками в CSS

Разработка #Веб-дизайн #HTML/CSS Ни для кого не секрет, что картинки – это неотъемлемая часть любого сайта, будь то...

Что такое Sass

Разработка #Обзор #HTML/CSS Sass – это своего рода расширение, созданное для упрощения каскадных таблиц стилей (CSS). Все те, кто начинает...

Плюсы и минусы покупки готовых шаблонов сайтов

А если у вас возник вопрос – так ли необходим адаптивный дизайн, нельзя ли обойтись обычной, традиционной версией...

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

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

Сравнение 29 сервисов аналитики маркетплейсов: обзор, рейтинг

Обзор сервисов аналитики маркетплейсов Сравнение 29 сервисов аналитики маркетплейсов по 10 параметрам. Обзор, рейтинг лучших сервисов для аналитики...

Pagekit – open source CMS от Yootheme

Разработка #Шаблоны #JavaScript #HTML/CSS #PHP #Оптимизация Тенденция, однако. Разработчики клубных шаблонов начинают создавать собственные CMS. Примерно год назад...

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

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

10 лучших HTML-редакторов

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

В Apple представили новый MacBook Air с восьмиядерным процессором М3

Новости #Гаджеты #Обновления #Apple Реклама. ООО «ТаймВэб». erid: LjN8KWcJi Состоялся официальный пресс-релиз новых MacBook Air диагональю 13,6 и 15,3 дюймов –...

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

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

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

Разработка #Веб-дизайн #Контент #Оптимизация Изучаем такой процесс, как проектирование сайта. Разбираем каждую стадию – от разработки базовых концепций...

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

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

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