❮vk-chat-bot❯

version downloads travis style

A chat bot framework for VK communities (groups).
documentation »changelog »featuresusagecontributinglicense

Features

  • Easy to use - setting up behavior is simple - see 2. Behavior setup below
  • Respects the quota - the framework calls VK API not more then 20 times/second, so you don't exceed the quota

Usage

Installation

yarn npm
yarn add vk-chat-bot npm i vk-chat-bot

Example

You can find an example bot in the u32i64/vk-chat-bot-example repository.
Also, a step-by-step Heroku Deploy Guide can guide you through the process of deploying u32i64/vk-chat-bot-example to Heroku.

Quick Start

1. Preparation

First, require() the framework:

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

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

var params = {
  vk_token: 'your_vk_access_token',
  confirmation_token: 'f123456',
  group_id: 1234567,
  secret: 's3r10us1y_s3cr3t_phr4s3',
  port: 12345,

  cmd_prefix: "/"
}

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 framework...
var Keyboard = vk.kbd.Keyboard
var Button = vk.kbd.Button
var colors = vk.kbd.colors

// ...to create a keyboard like this.
// +---------+---------+----------+----------+
// | Default | Primary | Negative | Positive |
// +---------+---------+----------+----------+
// |     Maximum rows is 10, columns - 4.    |
// +-----------------------------------------+
var kbd = new Keyboard([
  [ /* Row (array of buttons) */
    new Button('Default'),
    new Button('Primary', colors.primary),
    new Button('Negative', colors.negative),
    new Button('Positive', colors.positive)
  ],
  [
    new Button('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

  • Something does not seem right or you have a feature request? Open an issue.
  • You know how to make vk-chat-bot better? Open a pull request!

License

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

api/api.js

api/context.js

api/keyboard.js

bot.js

A part of vk-chat-bot node.js framework. Defines the Bot class.

Author:
Source:

core.js

extra/log.js

extra/stats.js

main.js

A part of vk-chat-bot node.js framework. Defines the bot quick creation function and the exported object, vk.

Author:
Source: