[TypeScript] NodeJS module of messenger bots (Telegram, VK and Viber)
Example
Node.js v18.2.0+
TypeScript v4.8.0+
- Cloning this repository and...
npm i --save <path_to_repository>/ts-bot-lite
- Import module
//Importing a module
import * as botLite from 'ts-bot-lite';
// Object declaration for Telegram
let requesterTelegram = new botLite.RequestTelegram({
token: '<api_key>'
});
// Object declaration for VK
let requesterVK = new botLite.RequestVK({
token: '<api_key>'
});
// Object declaration for Viber
let requesterViber = new botLite.RequestViber({
token: '<api_key>'
});
let keyboards = new botLite.Keyboard({
keyboard: [[
'<button_1_1>',
'<button_1_2>',
...
'<button_1_n>'
],
...
[
'<button_n_1>',
'<button_n_2>',
...
'<button_n_n>'
]]
});
// Formatting HTML text
let textHTML = new botLite.Texter({
markup: 'html',
text: '<b>bold</b><br><i>italic</i><br><code>code</code><br><s>strike</s>'
});
// Formatting Markdown text
let textMarkdown = new botLite.Texter({
markup: 'markdown',
text: '*bold*\r\n_italic_\r\n`code`\r\n```code```\r\n~strike~'
});
// Custom text
let textCustom = 'bold\r\nitalic\r\ncode\r\ncode\r\nstrike';
// Send a text message (Telegram) and console.log(<response>)
requesterTelegram.sendText({
user: '<user_id>',
keyboard: keyboards.telegram(),
text: textHTML.telegram() // or textMarkdown.telegram() or textCustom
}).then((r:any) => console.log(r));
// Send a text message (VK) and console.log(<response>)
requesterVK.sendText({
user: '<user_id>',
keyboard: keyboards.vk(),
text: textCustom.vk() // or textMarkdown.vk() or textCustom
}).then((r:any) => console.log(r));
// Send a text message (Viber) and console.log(<response>)
requesterViber.sendText({
user: '<user_id>',
keyboard: keyboards.viber(),
text: textCustom.viber() // or textMarkdown.viber() or textCustom
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'send',
date: <date_and_time>, # Unix-time format
statusText: {
ok: true,
messageId: <message_id>
}
}
// Send an image (Telegram) and console.log(<response>)
requesterTelegram.sendPhoto({
user: '<user_id>',
keyboard: keyboards.telegram(),
text: textHTML.telegram(), // or textMarkdown.telegram() or textCustom
url: '<image_link>' // https://example.org/image.png
}).then((r:any) => console.log(r));
// Send an image (VK) and console.log(<response>)
requesterVK.sendPhoto({
user: '<user_id>',
keyboard: keyboards.vk(),
text: textCustom.vk(), // or textMarkdown.vk() or textCustom
url: '<image_link>' // https://example.org/image.png
}).then((r:any) => console.log(r));
// Send an image (Viber) and console.log(<response>)
requesterViber.sendPhoto({
user: '<user_id>',
keyboard: keyboards.viber(),
text: textCustom.viber(), // or textMarkdown.viber() or textCustom
url: '<image_link>' // https://example.org/image.png
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'send',
date: <date_and_time>, # Unix-time format
statusText: {
ok: true,
messageId: <message_id>
}
}
// Send a file (Telegram) and console.log(<response>)
requesterTelegram.sendFile({
user: '<user_id>',
keyboard: keyboards.telegram(),
url: '<file_link>' // https://example.org/file.txt
}).then((r:any) => console.log(r));
// Send a file (VK) and console.log(<response>)
requesterVK.sendFile({
user: '<user_id>',
keyboard: keyboards.vk(),
url: '<file_link>' // https://example.org/file.txt
}).then((r:any) => console.log(r));
// Send a file (Viber) and console.log(<response>)
requesterViber.sendFile({
user: '<user_id>',
keyboard: keyboards.viber(),
url: '<file_link>' // https://example.org/file.txt
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'send',
date: <date_and_time>, # Unix-time format
statusText: {
ok: true,
messageId: <message_id>
}
}
// Send a location (Telegram) and console.log(<response>)
requesterTelegram.sendLocation({
user: '<user_id>',
keyboard: keyboards.telegram(),
latitude: '<latitude>',
longitude: '<longitude>'
}).then((r:any) => console.log(r));
// Send a location (VK) and console.log(<response>)
requesterVK.sendLocation({
user: '<user_id>',
keyboard: keyboards.vk(),
latitude: '<latitude>',
longitude: '<longitude>'
}).then((r:any) => console.log(r));
// Send a location (Viber) and console.log(<response>)
requesterViber.sendLocation({
user: '<user_id>',
keyboard: keyboards.viber(),
latitude: '<latitude>',
longitude: '<longitude>'
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'send',
date: <date_and_time>, # Unix-time format
statusText: {
ok: true,
messageId: <message_id>
}
}
// Get user information (Telegram) and console.log(<response>)
requesterTelegram.getUserInfo({
user: '<user_id>'
}).then((r:any) => console.log(r));
// Get user information (VK) and console.log(<response>)
requesterVK.getUserInfo({
user: '<user_id>'
}).then((r:any) => console.log(r));
// Get user information (Viber) and console.log(<response>)
requesterViber.getUserInfo({
user: '<user_id>'
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'getUserInfo',
date: <date_and_time>, # Unix-time format
statusText: {
ok: true,
userName: '<username>',
firstName: <first_name>,
lastName: <last_name>
}
}
// Custom request (Telegram) and console.log(<response>)
requesterTelegram.fetchSender({
param: {
<parameter_1>:'<value_1>',
<parameter_2>:'<value_2>',
...
<parameter_n>:'<value_n>'
},
page: '<method>',
responseType: 'custom'
}).then((r:any) => console.log(r));
// Custom request (VK) and console.log(<response>)
requesterVK.fetchSender({
param: {
<parameter_1>:'<value_1>',
<parameter_2>:'<value_2>',
...
<parameter_n>:'<value_n>'
},
page: '<method>',
responseType: 'custom'
}).then((r:any) => console.log(r));
// Custom request (Viber) and console.log(<response>)
requesterViber.fetchSender({
param: {
<parameter_1>:'<value_1>',
<parameter_2>:'<value_2>',
...
<parameter_n>:'<value_n>'
},
page: '<method>',
responseType: 'custom'
}).then((r:any) => console.log(r));
{
ok: true,
messenger: '<messenger>', # telegram or vk or viber
mask: 'custom',
date: <date_and_time>, # Unix-time format
statusText: {
<response_to_request>
}
}
This module is under development