прекрати
-
Автор темы
- #1
Всем привет! Это моя первая тема, поэтому могут быть косяки как в оформлении, так и в содержании. Сегодня я вам покажу своего бота-первонаха, который, собственно, оставляет комментарии под постами в группах. Давайте приступим к самому коду.
Для начала нам нужно установить Node.js, мой гайд с установкой Node.js и с установкой модулей находится здесь.
Затем устанавливаем модуль vk-io в той же папке, в которой и будут находиться файлы index.js и config.js:
Или же, если Вы используете Yarn:
Далее для работы с самими файлами понадобится любой текстовый редактор, для меня это Visual Studio Code, так как в нём есть встроенная консоль, с которой мне намного удобнее работать, но если у вас нет Visual Studio Code, можете использовать любой текстовый редактор в перемешку с консолью (cmd).
Начнём с файла конфигурации - создадим файл (или скачаем, файлы будут в конце темы) config.js. В нём хранится вся нужна нам информация: ваш токен, ссылки на группы, фразы и миллисекунды.
Некоторые из вас могут задаться вопросом: "как получить токен от страницы?". Объясняю. Заходим на
Далее создадим (или скачаем) файл index.js, в нём будет построена вся логика бота, которая нам не интересна:
ВАЖНО, чтобы файлы находились в одной папке или просто находились рядом.
После всех проделанных манипуляций просто запускаем файл index.js, написав в консоли/терминале:
Собственно, вот и всё! Теперь, если вы знаете как установить бота на сервер, можете поставить его на сервер и бот будет работать 24/7! Это самая простая версия бота-первонаха, так что если вы хорошо знаете Node.js, вы можете переделать некоторые моменты в коде либо же вообще переписать его и добавить своё!
Файлы:
Changelog
28.03.2019 - фикс ошибок по типу "> Был оставлен комментарий <<undefined>>", добавлена обработка ошибок.
В комментариях можете оставлять вопросы, если у вас появились какие-нибудь ошибки, постараюсь ответить! Также вы можете предлагать идеи для написания бота тоже в комментарии и возможно я эту идею воплощу даже в код!
Для начала нам нужно установить Node.js, мой гайд с установкой 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= и перед знаком &:Далее создадим (или скачаем) файл index.js, в нём будет построена вся логика бота, которая нам не интересна:
JavaScript:
let { VK } = require('vk-io');
let sample = (array) => array[Math.round((array.length - 1) * 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);
try {
await vk.api.wall.createComment({ owner_id: post.source_id, post_id: post.post_id, message });
} catch (e) {
let errors = {
213: 'Нет доступа к комментированию записи (возможно, комментарии были закрыты)',
222: 'Запрещённые гиперссылки',
223: 'Превышен лимит комментариев на стене',
};
let error = errors[e.code] || 'Неизвестная ошибка';
throw new Error(error);
}
console.log(`> Был оставлен комментарий <<${message}>>`);
}, MILLISECONDS);
})();
После всех проделанных манипуляций просто запускаем файл index.js, написав в консоли/терминале:
node index.js
.Собственно, вот и всё! Теперь, если вы знаете как установить бота на сервер, можете поставить его на сервер и бот будет работать 24/7! Это самая простая версия бота-первонаха, так что если вы хорошо знаете Node.js, вы можете переделать некоторые моменты в коде либо же вообще переписать его и добавить своё!
Файлы:
Для просмотра содержимого вам необходимо авторизоваться.
Changelog
28.03.2019 - фикс ошибок по типу "> Был оставлен комментарий <<undefined>>", добавлена обработка ошибок.
В комментариях можете оставлять вопросы, если у вас появились какие-нибудь ошибки, постараюсь ответить! Также вы можете предлагать идеи для написания бота тоже в комментарии и возможно я эту идею воплощу даже в код!
Последнее редактирование: