tgapi
v2.2.6
Published
Actual Telegram bot API JS implementation
Downloads
141
Maintainers
Readme
tgapi
Actual Telegram bot API JS implementation
Installation
- npm:
npm install --save tgapi
- yarn:
yarn add tgapi
Usage
Calling bot API methods
In order to send requests to API, we need to create the Bot
instance.
The Bot
is an object that contains all bot API methods.
Each bot API method returns a promise, on successful execution of which the
result will be the response object of the API server
described in the documentation.
In this example, we call getMe and sendPhoto methods:
const { Bot } = require('tgapi')
const fs = require('fs')
const bot = new Bot('<your bot token>')
bot
.getMe()
.then(console.log)
// { ok: true,
// result: {
// id: 12345,
// is_bot: true,
// first_name: "My awesome bot",
// username: "myawesomebot" } }
const chat_id = 100500
const photo = fs.createReadStream('./path/to/photo.jpg')
bot
.sendPhoto({ chat_id, photo })
.then(console.log)
// { ok: true, result: { Message object } }
bot
.sendPhoto({
chat_id,
photo: fs.createReadStream('./path/to/photo.jpg'),
})
.then(console.log)
// { ok: true, result: { Message object } }
Etc. for all other methods.
Serializable method parameters
Telegram requires serializing some parameters of methods. You do not need to do this, because this is done automatically.
Working with updates
As EventEmitter
// All options are optioal
const polling = bot.polling({
limit: 50,
timeout: 60,
allowedUpdates: [ ... ],
})
polling.on('update', update => { ... })
polling.on('message', message => { ... })
polling.on('error', error => { ... })
As Observable stream
const { from } = require('most')
const updates$ = from(polling)
const messages$ = updates$
.map(update => update.message)
.filter(Boolean)