node-vk-bot-sdk
v1.0.7
Published
A simple bot SDK for vk.com
Downloads
62
Readme
node-vk-bot-sdk
Небольшое SDK для создания чат-ботов с использованием Node.JS на платформе сообществ ВКонтакте.
Рекомендуется использовать с версиями VK API выше 5.103.
Установка
$ npm install node-vk-bot-sdk
или
$ yarn add node-vk-bot-sdk
Возможности
- Поддерживает работу с Callback событиями через Express/Koa или LongPoll
- Позволяет добавлять слушатели произвольных событий в сообществе
- Позволяет добавлять обработчики команд в сообщениях через RegExp или строки
- Поддерживает работу с присылаемой полезной нагрузкой и данными о клиенте
- Поддерживает установку middleware для всех получаемых событий
- Поддерживает настройку собственных обработчиков ошибок
Пример использования
const express = require('express');
const { VkBotSdk } = require('node-vk-bot-sdk');
const app = express();
const sdk = new VkBotSdk({
group_id: 0,
secret: '',
confirmation: '',
access_token: ''
});
const bot = sdk.getCallback();
bot.command(/test/, (ctx, params) => {
ctx.reply(`reply to ${ctx.from_id}`);
});
bot.defaultReply((ctx, params) => {
ctx.reply('Default reply');
});
app.use(express.json());
app.all('/callback', bot.eventsCallback);
app.listen(8080);
Context API
| Значение | Тип | Описание |
| --- | --- | --- |
| ctx.event | string
| Тип полученного события |
| ctx.data | object
| Полученные данные в событии |
| ctx.group_id | number
| ID сообщества |
| ctx.event_id | number
| ID события |
| ctx.user_id | number
| Псевдоним для ctx.from_id
|
| ctx.from_id | number
| ID автора сообщения (ID затрагиваемого пользователя для других событий) |
| ctx.peer_id | number
| ID дилога (ID затрагиваемого пользователя события для других событий) |
| ctx.message | string
| Преобразованный текст сообщения (пустая строка для других событий) |
| ctx.orig_message | string
| Оригинальный текст сообщения |
| ctx.client_info | object
| Данные о клиенте пользователя или стандартный объект |
| ctx.reply(text, attachment, keyboard) | function
| Отправляет ответ с текстом, вложениями и клавиатурой |
| ctx.replyKeyboard(text, keyboard) | function
| Отправляет ответ с текстом и клавиатурой |
| ctx.replyAttachment(attachment) | function
| Отправляет ответ только с вложениями |
| ctx.replyCustom(params) | function
| Отправляет ответ с кастомными параметрами |
| ctx.isKeyboardSupported() | function
| Возвращает информацию из client_info |
| ctx.isInlineKeyboardSupported() | function
| Возвращает информацию из client_info |
| ctx.isCarouselSupported() | function
| Возвращает информацию из client_info |