[Node.js] Бот-первонах | Как писать первым в группе ВКонтакте?

nitrojs

Новичок

nitrojs

Новичок
Статус
Оффлайн
Регистрация
15 Мар 2019
Сообщения
1
Реакции
2
Всем привет! По просьбе некоторых людей, я оставлю здесь эту штучку. Сегодня я вам покажу своего бота-первонаха, который, собственно, оставляет комментарии под постами в группах. Давайте приступим к самому коду.

Для начала нам нужно установить Node.js, гайды, надеюсь, сможете найти сами в интернете, а затем устанавливаете модуль vk-io в той же папке, в которой и будут находиться файлы index.js и config.js:
npm install vk-io --save
Или же, если Вы используете Yarn:
yarn add vk-io

Далее для работы с самими файлами понадобится любой текстовый редактор, для меня это Visual Studio Code, так как в нём есть встроенная консоль, с которой мне намного удобнее работать, но если у вас нет Visual Studio Code, можете использовать любой текстовый редактор в перемешку с консолью (cmd).

Начнём с файла конфигурации - создадим файл (или скачаем, файлы будут в конце темы) config.js. В нём хранится вся нужна нам информация: ваш токен, ссылки на группы, фразы и миллисекунды.

JavaScript:
let TOKEN = 'Здесь будет ваш токен.'; // токен
let GROUPS = ['https://vk.com/group', 'https://vk.com/group']; // ссылки на группы
let PHRASES = ['Message 1', 'Message 2']; // сообщения, которые бот будет оставлять под постом
let MILLISECONDS = 1000; // через сколько обновлять новости (в миллисекундах)

module.exports = {
  TOKEN,
  GROUPS,
  PHRASES,
  MILLISECONDS,
};

Некоторые из вас могут задаться вопросом: "как получить токен от страницы?". Объясняю. Заходим на
Пожалуйста, авторизуйтесь для просмотра ссылки.
vkhost, нажимаем на кнопку VK API, подтверждаем и копируем всё, что находится после слов access_token= и перед знаком &:
15058


Далее создадим (или скачаем) файл index.js, в нём будет построена вся логика бота, которая нам не интересна:
JavaScript:
let { VK } = require('vk-io');
let sample = (array) => array[Math.round(array.length * Math.random())];

let { TOKEN, GROUPS, PHRASES, MILLISECONDS } = require('./config');

let vk = new VK({
  token: TOKEN,
});

console.log('> Бот запущен.');

let commented = [];
let ids = [];

(async () => {
  ids = await Promise.all(GROUPS.map(async (link) => {
    let res = await vk.snippets.resolveResource(link);
    if (!res || res.type !== 'group') throw new Error('Ссылка должна вести на группу');

    return -res.id;
  }));
})();

setInterval(async () => {
  let { items } = await vk.api.newsfeed.get({ filters: 'post', count: 1 });
  let post = items[0];

  if (!ids.includes(post.source_id) || commented.includes(post.post_id)) return;

  let message = sample(PHRASES);

  commented.push(post.post_id);

  await vk.api.wall.createComment({ owner_id: post.source_id, post_id: post.post_id, message });

  console.log(`> Был оставлен комментарий <<${message}>>`);
}, MILLISECONDS);

ВАЖНО, чтобы файлы находились в одной папке или просто находились рядом.

После всех проделанных манипуляций просто запускаем файл index.js, написав в консоли/терминале: node index.js.

Собственно, вот и всё! Теперь, если вы знаете как установить бота на сервер, можете поставить его на сервер и бот будет работать 24/7! Это самая простая версия бота-первонаха, так что если вы хорошо знаете Node.js, вы можете переделать некоторые моменты в коде либо же вообще переписать его и добавить своё!

Файлы:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

В комментариях можете оставлять вопросы, если у вас появились какие-нибудь ошибки, постараюсь ответить!
 

†Падший†

Интересующийся

†Падший†

Интересующийся
Статус
Оффлайн
Регистрация
15 Апр 2019
Сообщения
4
Реакции
1
Золотая жила для арбитражников, если грамотно монетизировать сие творение, можно иметь хороший доход.
тс - Будь добр, закинь мне в личку свою телегу, есть пару вопросов а так же хорошие предложение ?
 
Сверху