awaitlink / vk-chat-bot

:package: node package for building chat bots for VK communities (uses Callback API)
https://u32i64.github.io/vk-chat-bot/
MIT License
22 stars 4 forks source link
api bot callback-api chat chatbot easy library nodejs npm quota vk

vk-chat-bot

version downloads bundle size

Package for easy creation of chat bots for VK communities (groups). Uses Callback API.
documentation »changelog »featuresusagecontributinglicense

Features

The version of VK API used by this package can be found here.

Usage

Installation

$ yarn add vk-chat-bot

Example

You can find an example bot in the u32i64/vk-chat-bot-example repository.

Quick Start

1. Preparation

First, require() the package:

const vk = require('vk-chat-bot');

Then, create your bot using the vk.bot function (see Params object for more information about params):

const params = {
  vkToken: 'your_vk_access_token',
  confirmationToken: 'f123456',
  groupId: 1234567,
  secret: 's3r10us1y_s3cr3t_phr4s3',
  port: 12345,

  cmdPrefix: '/'
};

var { bot, core } = vk.bot(params);

2. Behavior setup

See Core wiki to learn more about behavior functions. Here are some examples:

// Use stuff from the package...
const { Color, button, Keyboard } = vk.kbd;

// ...to create a keyboard like this.
// +-----------+---------+----------+----------+
// | Secondary | Primary | Negative | Positive |
// +-----------+---------+----------+----------+
// |      Maximum rows is 10, columns - 4.     |
// +-------------------------------------------+
var kbd = new Keyboard([
  [ /* Row (array of buttons) */
    button.text('Secondary'),
    button.text('Primary', Color.Primary),
    button.text('Negative', Color.Negative),
    button.text('Positive', Color.Positive)
  ],
  [
    button.text('Maximum rows is 10, columns - 4.')
  ],
]);

// When user presses the `Start` button...
// (you have to enable the button in community settings)
core.on('start', $ => {
  // ...send them our keyboard.
  $.text('Thanks for messaging us! Choose from the options below:');
  $.keyboard(kbd);

  // Here, $.send() is added automatically.
});
// Searches for cmd_prefix + 'help', e.g. '/help'
core.cmd('help', $ => {
  // core.help() returns the help message
  $.text('Test Bot v1.0' + core.help());

  // Attach an image from
  // https://vk.com/team?z=photo6492_45624077
  $.attach('photo', 6492, 456240778);
}, 'shows the help message');
// Use case-insensitive regular expression to find words 'hi', 'hello' or 'hey'
core.regex(/h(i|ello|ey)/i, $ => {
  $.text('Hello, I am a test bot. You said: ' + $.msg);
});

3. Start it!

Start the bot:

bot.start();

The bot will log some useful information, see Logging documentation for more information.

Contributing

License

This project is licensed under the terms of the MIT license.