UNPKG

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