Skip to content

botocrats/telegram

Repository files navigation

Telegram Bot Client

Simple, light-weight Telegram Bot Client for Node.js.

NodeJS npm telegram 5.7 quality license mit

last commitTest size vulnerabilities Total alerts Code quality

This library is part of Botocrat Framework and can work as a standalone library.

What's the difference?

  • You don't have to think about the order of the arguments, same as official API
  • Lightest weight (< 5 kb)
  • Minimal dependencies
  • Future-proof (Only types will added on Telegram API changes)
  • Bent as http requester

What's missing?

This library intented to make requests to Telegram Bot API server and handling responses only. Handling updates from telegram or other high level features is not a purpose of this library. Use the framework to receive and handle updates.

Getting started

npm i @botocrat/telegram --save
import createClient from '@botocrat/telegram'

const client = createClient({token: '123456789:BB...'})

const me = await client.getMe()

TypeScript Support

import createClient, {ITMessage} from '@botocrat/telegram'

const client = createClient({token: '123456789:BB...'})

const Message: ITMessage = {
  chat_id: -11111111, 
  text: "Hello", 
  protect_content: true
}
const sent = await client.sendMessage(Message)

Feature: Download File From Telegram

...
const [data, ext, size] = await client
  .getFile(incomingMessage.photo)
  .then(client.download) // Buffer

fs.writeFileSync("fileName." + ext, data)
...

Feature: Intercepting request

You can intercept the request by defining interceptor. This feature is implemented for logging purpose and it's optional.

...
const client = createClient({
  token: '123456789:BB...',
  interceptor: (method, params, formData) => {
    console.log(`${method} called | ${Date.now()}`)
  }})
...

Parameters

Required

Param Description
token Telegram bot token

Optional

Param Description Default
debug Debug function null
baseUri Telegram API url https://api.telegram.org
fileSizeLimit Size limiter for .download() method Infinity (no limit)
interceptor callback to intercept request before sent null

No need for extra documentation, all API methods and parameters explained in Official Telegram Bot API Documentation

Resources

License

MIT License