aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 97c59eaa6224d157578e69dd2761d2bb70c745a9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# iii-for-vk
[![npm](https://img.shields.io/npm/v/iii-for-vk.svg)](https://www.npmjs.com/package/iii-for-vk)
[![dependencies Status](https://david-dm.org/valentineus/iii-for-vk/status.svg)](https://david-dm.org/valentineus/iii-for-vk)
[![devDependencies Status](https://david-dm.org/valentineus/iii-for-vk/dev-status.svg)](https://david-dm.org/valentineus/iii-for-vk?type=dev)

## Description
This package contains a minimalistic and simple API for the rapid deployment of the bot under the social network VK.
Created to demonstrate the possibilities of using the `iii-client` package.

The functionality of the existing API is easily extended to the needs of the developer.

Want to own a bot under the social network? Take my package and expand it, as you wish.

## Installation and usage example
Installation is performed by the command:
```bash
npm install --save iii-for-vk
```

A simple example that implements an answering machine is at the root of the repository.
This is the file `example.js`.
In the NPM package it is not included to reduce the volume:
```bash
$ npm init
$ npm install --save iii-for-vk
$ curl -L -o index.js https://raw.githubusercontent.com/valentineus/iii-for-vk/master/example.js
// Edit the file index.js
$ node ./index.js
```

## Expanding functionality
### Events
There is an event channel called `events`.
All incoming account events pass through it.
Event details: https://vk.com/dev/using_longpoll

An example of a filter for certain events can be seen in the example of the `_filterMessages` function.

### Social Network API
After declaring the main class and executing the `init` function, you can use the inner class` _vk` to work with the social network API.

Work Details: [nodejs-vksdk](https://github.com/57uff3r/nodejs-vksdk)

Example:
```javascript
var bot = new ChatBot({
    // Variables
});

// Request 'users.get' method
bot._vk.request('users.get', {'user_id' : 1}, function(_o) {
    console.log(_o);
});
```

## API

### new Bot()
Class representing a Bot.

### bot.init(callback)
Initial initialization of all systems and services.

| Param | Type | Description |
| --- | --- | --- |
| callback | <code>requestCallback</code> | The callback that handles the response. |

### bot.getMessageByID(id, callback)
Receive a message by its ID.

| Param | Type | Description |
| --- | --- | --- |
| id | <code>Number</code> | The message ID. |
| callback | <code>requestCallback</code> | The callback that handles the response. |

### bot.sendMessageToVK(options, callback)
Simplifies the sending of a message to the user.
The social network API is used.
More information: https://vk.com/dev/messages.send

| Param | Type | Description |
| --- | --- | --- |
| options | <code>Object</code> | Object with parameters. |
| options.user_id | <code>Object</code> | User ID. |
| options.message | <code>Object</code> | Message text. |
| callback | <code>requestCallback</code> | The callback that handles the response. |

### bot.sendMessageToBot(options, callback)
Simplifies sending a message to the bot.

| Param | Type | Description |
| --- | --- | --- |
| options | <code>Object</code> | Object with parameters. |
| options.cuid | <code>Object</code> | Session identifier. |
| options.text | <code>Object</code> | Message text. |
| callback | <code>requestCallback</code> | The callback that handles the response. |

### bot._eventLoop()
The event startup service.

### bot._filterMessages()
Filter events for incoming messages.

*Fires:**: Bot#messages  

### bot._getLongPollServer(callback)
Obtaining the Long Poll server address.

| Param | Type | Description |
| --- | --- | --- |
| callback | <code>requestCallback</code> | The callback that handles the response. |

### bot._getEvents([ts])
Waiting and returning the event.

*Fires:**: Bot#events  

| Param | Type | Description |
| --- | --- | --- |
| [ts] | <code>String</code> | The ID of the last event. |

## License
[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/eslint/eslint)

[MIT](LICENSE.md).
Copyright (c) [Valentin Popov](https://valentineus.link/).