Options
All
  • Public
  • Public/Protected
  • All
Menu

telegram-bot-api-client

Telegram Bot API Client interface.

Full documentation

https://ukaoskid.github.io/telegram-bot-api/

Installation and use

To install the package just type npm i telegram-bot-api-client --save

Example

First you need to create a Telegram Bot

Open Telegram and search for @BotFather. It is the manager of all Telegram's bot. The bot creation happens entirely on the chat by using commands.

  • Request a new bot: /newbot
    • @BotFather will ask you for a name to give: give-a-name-to-the-bot
  • Finally request for a token: /token
    • @BotFather will reply you with a token. Copy it.
  • Just if you want, you can set the bot as an entity that can join Telegram groups: /setjoingroups
    • @BotFather will ask you to enable or disable the bot to join groups: enable | disable

Now you have activated your bot. Let's try to send a message or a photo:

import { Telegram } from "telegram-bot-api-client/dist/telegram/telegram";
import { ISendMessagePayload } from "telegram-bot-api-client/dist/interfaces/payloads/send/send-message-payload";
import { ISendPhotoPayload } from "telegram-bot-api-client/dist/interfaces/payloads/send/send-photo-payload";
import { InputFile } from "./models/telegram/types/input-file";
import * as fs from "fs";

let botToken = "the token you got from @BotFather";
let telegram: Telegram = new Telegram(botToken);
let userChatId: 12345678;

/*
 * Generally, you need to know the Telegram ID of the user you want to involve in the action.
 */

/*
 * Sending a message
 */
let messagePayload: ISendMessagePayload = {
  chat_id: userChatId,
  text: "Testing a text message"
}

telegram.messages.sendMessage(messagePayload)
    .then((response) => {
      console.log(response);
    })
    .catch((error) => {
      console.error(JSON.stringify(error));
    });

/*
 * Sending a photo
 */
let photoStream = fs.createReadStream("/path/to/file/logo.png");

let photoPayload: ISendPhotoPayload = {
  chat_id: userChatId,
  caption: "This logo is amazing!",
  photo: new InputFile(photoStream)
};

telegram.messages.sendPhoto(photoPayload)
    .then((response) => {
      console.log(response);
    })
    .catch((error) => {
      console.error(JSON.stringify(error));
    });

What's on the plan to do

  • [ ] Integrating JSDoc to the project
  • Telegram API Integration
    • [X] InputFile mode to send file streams payloads (audio, documents, etc.) (added in 1.0.10)
    • [X] Generic available methods (added in 1.0.0)
    • [X] Inline mode
    • [X] Getting updates (bot's incoming updates and webhook management) (added in 1.0.6)
    • [X] Messages updates (edit sent messages etc.) (added in 1.0.11)
    • [X] Payments (added in 1.0.7)
    • [X] Games (added in 1.0.8)

Changelog

  • 1.0.12 - Current
    • Improved the JSDoc
  • 1.0.11 - Current
    • Added Messages update
    • Improved the JSDoc
  • 1.0.10
    • Added InputFile to send file streams payloads (audio, documents, etc.)
    • Improved the JSDoc
  • 1.0.9
    • Added Inline mode interface
    • Improved the JSDoc
  • 1.0.8
    • Added Games interface
    • Improved the JSDoc
  • 1.0.7
    • Added Payments interface
    • Improved the JSDoc
  • 1.0.6
    • Added Getting updates interface (bot's incoming updates and webhook mangement)
    • Improved the JSDoc
  • 1.0.5 > 1.0.1
    • Improved the JSDoc
  • 1.0.0
    • Initial release

Index

Classes

Interfaces

Functions

Object literals

Functions

InputFilePattern

  • InputFilePattern(filePath?: string, readStream?: Stream, filename?: string, contentType?: string): object
  • Parameters

    • Default value filePath: string = ""
    • Default value readStream: Stream = null
    • Default value filename: string = ""
    • Default value contentType: string = ""

    Returns object

    • value: Stream
    • options: object
      • contentType: string | true | false
      • filename: string

Object literals

TelegramProvider

TelegramProvider: object

baseUri

baseUri: string = "https://api.telegram.org"

bot

bot: string = "/bot"

method

method: string = "POST"

services

services: object

answerCallbackQuery

answerCallbackQuery: string = "/answerCallbackQuery"

deleteChatPhoto

deleteChatPhoto: string = "/deleteChatPhoto"

exportChatInviteLink

exportChatInviteLink: string = "/exportChatInviteLink"

forwardMessage

forwardMessage: string = "/forwardMessage"

getChat

getChat: string = "/getChat"

getChatAdministrators

getChatAdministrators: string = "/getChatAdministrators"

getChatMember

getChatMember: string = "/getChatMember"

getChatMembersCount

getChatMembersCount: string = "/getChatMembersCount"

getFile

getFile: string = "/getFile"

getMe

getMe: string = "/getMe"

getUserProfilePhotos

getUserProfilePhotos: string = "/getUserProfilePhotos"

info

info: object

Type declaration

kickChatMember

kickChatMember: string = "kickChatMember/"

leaveChat

leaveChat: string = "/leaveChat"

pinChatMessage

pinChatMessage: string = "/pinChatMessage"

promoteChatMember

promoteChatMember: string = "/promoteChatMember"

restrictChatMember

restrictChatMember: string = "/restrictChatMember"

send

send: object

Type declaration

sendAudio

sendAudio: string = "/sendAudio"

sendChatAction

sendChatAction: string = "/sendChatAction"

sendContact

sendContact: string = "/sendContact"

sendDocument

sendDocument: string = "/sendDocument"

sendLocation

sendLocation: string = "/sendLocation"

sendMessage

sendMessage: string = "/sendMessage"

sendPhoto

sendPhoto: string = "/sendPhoto"

sendSticker

sendSticker: string = "/sendSticker"

sendVenue

sendVenue: string = "/sendVenue"

sendVideo

sendVideo: string = "/sendVideo"

sendVideoNote

sendVideoNote: string = "/sendVideoNote"

sendVoice

sendVoice: string = "/sendVoice"

setChatDescription

setChatDescription: string = "/setChatDescription"

setChatPhoto

setChatPhoto: string = "/setChatPhoto"

setChatTitle

setChatTitle: string = "/setChatTitle"

unbanChatMember

unbanChatMember: string = "/unbanChatMember"

unpinChatMessage

unpinChatMessage: string = "/unpinChatMessage"

games

games: object

getGameHighScores

getGameHighScores: string = "/getGameHighScores"

sendGame

sendGame: string = "/sendGame"

setGameScore

setGameScore: string = "/setGameScore"

inline

inline: object

answerInlineQuery

answerInlineQuery: string = "/answerInlineQuery"

messageUpdates

messageUpdates: object

deleteMessage

deleteMessage: string = "/deleteMessage"

editMessageCaption

editMessageCaption: string = "/editMessageCaption"

editMessageReplyMarkup

editMessageReplyMarkup: string = "/editMessageReplyMarkup"

editMessageText

editMessageText: string = "/editMessageText"

payments

payments: object

answerPreCheckoutQuery

answerPreCheckoutQuery: string = "/answerPreCheckoutQuery"

answerShippingQuery

answerShippingQuery: string = "/answerShippingQuery"

sendInvoice

sendInvoice: string = "/sendInvoice"

updates

updates: object

deleteWebhook

deleteWebhook: string = "/deleteWebhook"

getUpdates

getUpdates: string = "/getUpdates"

getWebhookInfo

getWebhookInfo: string = "/getWebhookInfo"

setWebook

setWebook: string = "/setWebook"

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method

Generated using TypeDoc