UNPKG

4.85 kBMarkdownView Raw
1# node-vk-bot-sdk
2
3Небольшое SDK для создания чат-ботов с использованием Node.JS на платформе [сообществ ВКонтакте](https://vk.com/dev/bots_docs).
4
5Рекомендуется использовать с версиями API выше [5.103](https://vk.com/dev/versions).
6
7## Установка
8```bash
9$ npm install node-vk-bot-sdk
10```
11
12или
13
14```bash
15$ yarn add node-vk-bot-sdk
16```
17
18## Возможности
19* Поддерживает работу с Callback событиями через Express/Koa или LongPoll
20* Позволяет добавлять слушатели [произвольных событий в сообществе](https://vk.com/dev/groups_events)
21* Позволяет добавлять обработчики команд в сообщениях через RegExp или строки
22* Поддерживает работу с присылаемой полезной нагрузкой и данными о клиенте
23* Поддерживает установку middleware для всех получаемых событий
24* Поддерживает настройку собственных обработчиков ошибок
25
26## Пример использования
27```js
28const express = require('express');
29const { VkBotSdk } = require('node-vk-bot-sdk');
30
31const app = express();
32
33const sdk = new VkBotSdk({
34 group_id: 0,
35 secret: '',
36 confirmation: '',
37 access_token: ''
38});
39
40const bot = sdk.getCallback();
41
42bot.command(/test/, (ctx, params) => {
43 ctx.reply(`reply to ${ctx.from_id}`);
44});
45
46bot.defaultReply((ctx, params) => {
47 ctx.reply('Default reply');
48});
49
50app.use(express.json());
51app.all('/callback', bot.eventsCallback);
52
53app.listen(8080);
54```
55
56[Другие примеры работы](examples)
57
58## Context API
59| Значение | Тип | Описание |
60| --- | --- | --- |
61| ctx.event | `string` | Тип полученного события |
62| ctx.data | `object` | Полученные данные в событии |
63| ctx.group_id | `number` | ID сообщества |
64| ctx.event_id | `number` | ID события |
65| ctx.user_id | `number` | Псевдоним для `ctx.from_id` |
66| ctx.from_id | `number` | ID автора сообщения <br> (ID затрагиваемого пользователя для других событий) |
67| ctx.peer_id | `number` | ID дилога <br> (ID затрагиваемого пользователя события для других событий) |
68| ctx.message | `string` | Преобразованный текст сообщения (пустая строка для других событий) |
69| ctx.orig_message | `string` | Оригинальный текст сообщения |
70| ctx.client_info | `object` | Данные о клиенте пользователя или стандартный объект |
71| ctx.reply(text, attachment, keyboard) | `function` | Отправляет ответ с текстом, вложениями и клавиатурой |
72| ctx.replyKeyboard(text, keyboard) | `function` | Отправляет ответ с текстом и клавиатурой |
73| ctx.replyAttachment(attachment) | `function` | Отправляет ответ только с вложениями |
74| ctx.replyCustom(params) | `function` | Отправляет ответ с кастомными параметрами |
75| ctx.isKeyboardSupported() | `function` | Возвращает информацию из client_info |
76| ctx.isInlineKeyboardSupported() | `function` | Возвращает информацию из client_info |
77| ctx.isCarouselSupported() | `function` | Возвращает информацию из client_info |