Socket
Socket
Sign inDemoInstall

messaging-api-telegram-proxy

Package Overview
Dependencies
11
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    messaging-api-telegram-proxy

Messaging API client for Telegram use proxy


Version published
Weekly downloads
5
increased by400%
Maintainers
1
Install size
1.01 MB
Created
Weekly downloads
 

Readme

Source

messaging-api-telegram-proxy

Messaging API client for Telegram use proxy

TelegramTelegram

Table of Contents

  • Installation
  • Usage
  • API Reference
  • Debug Tips
  • Test

Forked: https://github.com/Yoctol/messaging-apis

Installation

npm i --save messaging-api-telegram-proxy

Usage

Initialize

const { TelegramClient } = require('messaging-api-telegram-proxy');

let telegram_access_token = '12345678:AaBbCcDdwhatever'// get accessToken from telegram [@BotFather](https://telegram.me/BotFather)
let proxy_http = 'http://login:pass@127.0.0.1:1234' // https://www.google.ru/search?q=proxy+http

const client = TelegramClient.connect(telegram_access_token, proxy_http);

Error Handling

messaging-api-telegram-proxy uses axios as HTTP client. We use axios-error package to wrap API error instances for better formatting error messages. Directly console.log on the error instance will return formatted message. If you'd like to get the axios request, response, or config, you can still get them via those keys on the error instance.

client.getWebhookInfo().catch(error => {
  console.log(error); // formatted error message
  console.log(error.stack); // error stack trace
  console.log(error.config); // axios request config
  console.log(error.request); // HTTP request
  console.log(error.response); // HTTP response
});

API Reference

All methods return a Promise.


Webhook API

getWebhookInfo - Official Docs

Gets current webhook status.

Example:

client.getWebhookInfo().then(info => {
  console.log(info);
  // {
  //   url: 'https://4a16faff.ngrok.io/',
  //   has_custom_certificate: false,
  //   pending_update_count: 0,
  //   max_connections: 40,
  // }
});

getUpdates - Official Docs

Use this method to receive incoming updates using long polling. An Array of Update objects is returned.

ParamTypeDescription
optionsObjectOptional parameters.

Example:

client
  .getUpdates({
    limit: 10,
  })
  .then(updates => {
    console.log(updates);
    /*
      [
        {
          update_id: 513400512,
          message: {
            message_id: 3,
            from: {
              id: 313534466,
              first_name: 'first',
              last_name: 'last',
              username: 'username',
            },
            chat: {
              id: 313534466,
              first_name: 'first',
              last_name: 'last',
              username: 'username',
              type: 'private',
            },
            date: 1499402829,
            text: 'hi',
          },
        },
        ...
      ]
    */
  });

setWebhook(url) - Official Docs

Specifies a url and receive incoming updates via an outgoing webhook.

ParamTypeDescription
urlStringHTTPS url to send updates to.

Example:

client.setWebhook('https://4a16faff.ngrok.io/');

deleteWebhook - Official Docs

Removes webhook integration.

Example:

client.deleteWebhook();

Send API - Official Docs

sendMessage(chatId, text [, options]) - Official Docs

Sends text messages.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
textStringText of the message to be sent.
optionsObjectOther optional parameters.

Example:

client.sendMessage(CHAT_ID, 'hi', {
  disable_web_page_preview: true,
  disable_notification: true,
});

sendPhoto(chatId, photo [, options]) - Official Docs

Sends photos.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
photoStringPass a file id (recommended) or HTTP URL to send photo.
optionsObjectOther optional parameters.

Example:

client.sendPhoto(CHAT_ID, 'https://example.com/image.png', {
  caption: 'gooooooodPhoto',
  disable_notification: true,
});

sendAudio(chatId, audio [, options]) - Official Docs

Sends audio files.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
audioStringPass a file id (recommended) or HTTP URL to send audio.
optionsObjectOther optional parameters.

Example:

client.sendAudio(CHAT_ID, 'https://example.com/audio.mp3', {
  caption: 'gooooooodAudio',
  disable_notification: true,
});

sendDocument(chatId, document [, options]) - Official Docs

Sends general files.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
documentStringPass a file id (recommended) or HTTP URL to send document.
optionsObjectOther optional parameters.

Example:

client.sendDocument(CHAT_ID, 'https://example.com/doc.gif', {
  caption: 'gooooooodDocument',
  disable_notification: true,
});

sendSticker(chatId, sticker [, options]) - Official Docs

Sends .webp stickers.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
stickerStringPass a file id (recommended) or HTTP URL to send sticker.
optionsObjectOther optional parameters.

Example:

client.sendSticker(CHAT_ID, 'CAADAgADQAADyIsGAAE7MpzFPFQX5QI', {
  disable_notification: true,
});

sendVideo(chatId, video [, options]) - Official Docs

Sends video files, Telegram clients support mp4 videos (other formats may be sent as Document).

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
videoStringPass a file id (recommended) or HTTP URL to send video.
optionsObjectOther optional parameters.

Example:

client.sendVideo(CHAT_ID, 'https://example.com/video.mp4', {
  caption: 'gooooooodVideo',
  disable_notification: true,
});

sendVoice(chatId, voice [, options]) - Official Docs

Sends audio files.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
voiceStringPass a file id (recommended) or HTTP URL to send voice.
optionsObjectOther optional parameters.

Example:

client.sendVoice(CHAT_ID, 'https://example.com/voice.ogg', {
  caption: 'gooooooodVoice',
  disable_notification: true,
});

sendVideoNote(chatId, videoNote [, options]) - Official Docs

Sends video messages. As of v.4.0, Telegram clients support rounded square mp4 videos of up to 1 minute long.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
videoNoteStringPass a file id (recommended) or HTTP URL to send video note.
optionsObjectOther optional parameters.

Example:

client.sendVideoNote(CHAT_ID, 'https://example.com/video_note.mp4', {
  duration: 40,
  disable_notification: true,
});

sendMediaGroup(chatId, media [, options]) - Official Docs

send a group of photos or videos as an album.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
mediaArray<InputMedia>A JSON-serialized array describing photos and videos to be sent, must include 2–10 items
optionsObjectOther optional parameters.

Example:

client.sendMediaGroup(CHAT_ID, [
  { type: 'photo', media: 'BQADBAADApYAAgcZZAfj2-xeidueWwI' },
]);

sendLocation(chatId, location [, options]) - Official Docs

Sends point on the map.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
locationObjectObject contains latitude and longitude.
location.latitudeNumberLatitude of the location.
location.longitudeNumberLongitude of the location.
optionsObjectOther optional parameters.

Example:

client.sendLocation(
  CHAT_ID,
  {
    latitude: 30,
    longitude: 45,
  },
  {
    disable_notification: true,
  }
);

sendVenue(chatId, venue [, options]) - Official Docs

Sends information about a venue.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
venueObjectObject contains information of the venue.
venue.latitudeNumberLatitude of the venue.
venue.longitudeNumberLongitude of the venue.
venue.titleStringName of the venue.
venue.addressStringAddress of the venue.
optionsObjectOther optional parameters.

Example:

client.sendVenue(
  CHAT_ID,
  {
    latitude: 30,
    longitude: 45,
    title: 'a_title',
    address: 'an_address',
  },
  {
    disable_notification: true,
  }
);

sendContact(chatId, contact [, options]) - Official Docs

Sends phone contacts.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
contactObjectObject contains information of the contact.
contact.phone_numberStringPhone number of the contact.
contact.first_nameStringFirst name of the contact.
optionsObjectOther optional parameters.

Example:

client.sendContact(
  CHAT_ID,
  {
    phone_number: '886123456789',
    first_name: 'first',
  },
  { last_name: 'last' }
);

sendChatAction(chatId, action) - Official Docs

Tells the user that something is happening on the bot's side.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
actionStringType of action to broadcast.

Example:

client.sendChatAction(CHAT_ID, 'typing');

Get API

getMe - Official Docs

Gets bot's information.

Example:

client.getMe().then(result => {
  console.log(result);
  // {
  //   id: 313534466,
  //   first_name: 'first',
  //   username: 'a_bot'
  // }
});

getUserProfilePhotos(userId [, options]) - Official Docs

Gets a list of profile pictures for a user.

ParamTypeDescription
userIdStringUnique identifier of the target user.
optionsObjectOther optional parameters

Example:

client.getUserProfilePhotos(USER_ID, { limit: 1 }).then(result => {
  console.log(result);
  // {
  //   total_count: 3,
  //   photos: [
  //     [
  //       {
  //         file_id:
  //           'AgADBAADGTo4Gz8cZAeR-ouu4XBx78EeqRkABHahi76pN-aO0UoDA050',
  //         file_size: 14650,
  //         width: 160,
  //         height: 160,
  //       },
  //       {
  //         file_id:
  //           'AgADBAADGTo4Gz8cZAeR-ouu4XBx78EeqRkABKCfooqTgFUX0EoD5B1C',
  //         file_size: 39019,
  //         width: 320,
  //         height: 320,
  //       },
  //       {
  //         file_id:
  //           'AgADBAADGTo4Gz8cZAeR-ouu4XBx78EeqRkABPL_pC9K3UpI0koD1B1C',
  //         file_size: 132470,
  //         width: 640,
  //         height: 640,
  //       },
  //     ],
  //   ],
  // }
});

getFile(fileId) - Official Docs

Gets basic info about a file and prepare it for downloading.

ParamTypeDescription
fileIdStringFile identifier to get info about.

Example:

client
  .getFile('UtAqweADGTo4Gz8cZAeR-ouu4XBx78EeqRkABPL_pM4A1UpI0koD65K2')
  .then(file => {
    console.log(file);
    // {
    //   file_id: 'UtAqweADGTo4Gz8cZAeR-ouu4XBx78EeqRkABPL_pM4A1UpI0koD65K2',
    //   file_size: 106356,
    //   file_path: 'photos/1068230105874016297.jpg',
    // }
  });

getFileLink(fileId)

Gets link of the file.

ParamTypeDescription
fileIdStringFile identifier to get info about.

Example:

client
  .getFileLink('UtAqweADGTo4Gz8cZAeR-ouu4XBx78EeqRkABPL_pM4A1UpI0koD65K2')
  .then(link => {
    console.log(link);
    // 'https://api.telegram.org/file/bot<ACCESS_TOKEN>/photos/1068230105874016297.jpg'
  });

getChat(chatId) - Official Docs

Gets up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.)

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.getChat(CHAT_ID).then(chat => {
  console.log(chat);
  // {
  //   id: 313534466,
  //   first_name: 'first',
  //   last_name: 'last',
  //   username: 'username',
  //   type: 'private',
  // }
});

getChatAdministrators(chatId) - Official Docs

Gets a list of administrators in a chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.getChatAdministrators(CHAT_ID).then(admins => {
  console.log(admins);
  // [
  //   {
  //     user: {
  //       id: 313534466,
  //       first_name: 'first',
  //       last_name: 'last',
  //       username: 'username',
  //       languange_code: 'zh-TW',
  //     },
  //     status: 'creator',
  //   },
  // ]
});

getChatMembersCount(chatId) - Official Docs

Gets the number of members in a chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.getChatMembersCount(CHAT_ID).then(count => {
  console.log(count); // '6'
});

getChatMember(chatId, userId) - Official Docs

Gets information about a member of a chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
userIdNumberUnique identifier of the target user.

Example:

client.getChatMember(CHAT_ID, USER_ID).then(member => {
  console.log(member);
  // {
  //   user: {
  //     id: 313534466,
  //     first_name: 'first',
  //     last_name: 'last',
  //     username: 'username',
  //     languange_code: 'zh-TW',
  //   },
  //   status: 'creator',
  // }
});

Updating API

editMessageText(text [, options]) - Official Docs

Edits text and game messages sent by the bot or via the bot (for inline bots).

ParamTypeDescription
textStringNew text of the message.
optionsObjectOne of chat_id, message_id or inline_message_id is required.
options.chat_idNumber | StringUnique identifier for the target chat or username of the target channel.
options.message_idNumberIdentifier of the sent message.
options.inline_message_idStringIdentifier of the inline message.

Example:

client.editMessageText('new_text', { message_id: MESSAGE_ID });

editMessageCaption(caption [, options]) - Official Docs

Edits captions of messages sent by the bot or via the bot (for inline bots).

ParamTypeDescription
captionStringNew caption of the message.
optionsObjectOne of chat_id, message_id or inline_message_id is required.
options.chat_idNumber | StringUnique identifier for the target chat or username of the target channel.
options.message_idNumberIdentifier of the sent message.
options.inline_message_idStringIdentifier of the inline message.

Example:

client.editMessageCaption('new_caption', { message_id: MESSAGE_ID });

editMessageReplyMarkup(replyMarkup [, options]) - Official Docs

Edits only the reply markup of messages sent by the bot or via the bot (for inline bots).

ParamTypeDescription
replyMarkupObjectNew replyMarkup of the message.
optionsObjectOne of chat_id, message_id or inline_message_id is required.
options.chat_idNumber | StringUnique identifier for the target chat or username of the target channel.
options.message_idNumberIdentifier of the sent message.
options.inline_message_idStringIdentifier of the inline message.

Example:

client.editMessageReplyMarkup(
  {
    keyboard: [[{ text: 'new_button_1' }, { text: 'new_button_2' }]],
    resize_keyboard: true,
    one_time_keyboard: true,
  },
  { message_id: MESSAGE_ID }
);

deleteMessage(chatId, messageId) - Official Docs

Deletes a message, including service messages.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
messageIdNumberIdentifier of the message to delete.

Example:

client.deleteMessage(CHAT_ID, MESSAGE_ID);

editMessageLiveLocation(location [, options]) - Official Docs

Edit live location messages sent by the bot or via the bot (for inline bots).

ParamTypeDescription
locationObjectObject contains new latitude and longitude.
location.latitudeNumberLatitude of new location.
location.longitudeNumberLongitude of new location.
optionsObjectOne of chat_id, message_id or inline_message_id is required.
options.chat_idNumber | StringUnique identifier for the target chat or username of the target channel.
options.message_idNumberIdentifier of the sent message.
options.inline_message_idStringIdentifier of the inline message.

Example:

client.editMessageLiveLocation(
  {
    latitude: 30,
    longitude: 45,
  },
  {
    message_id: MESSAGE_ID,
  }
);

stopMessageLiveLocation(options) - Official Docs

Stop updating a live location message sent by the bot or via the bot (for inline bots) before live_period expires.

ParamTypeDescription
identifierObjectOne of chat_id, message_id or inline_message_id is required.
identifier.chat_idNumber | StringUnique identifier for the target chat or username of the target channel.
identifier.message_idNumberIdentifier of the sent message.
identifier.inline_message_idStringIdentifier of the inline message.

Example:

client.stopMessageLiveLocation({ message_id: MESSAGE_ID });

Group API

kickChatMember(chatId, userId [, options]) - Official Docs

Kicks a user from a group, a supergroup or a channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
userIdNumberUnique identifier of the target user.
optionsObjectOther optional parameters.

Example:

client.kickChatMember(CHAT_ID, USER_ID, { until_date: UNIX_TIME });

unbanChatMember(chatId, userId) - Official Docs

Unbans a previously kicked user in a supergroup or channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
userIdNumberUnique identifier of the target user.

Example:

client.unbanChatMember(CHAT_ID, USER_ID);

restrictChatMember(chatId, userId [, options]) - Official Docs

Restricts a user in a supergroup

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
userIdNumberUnique identifier of the target user.
optionsObjectOther optional parameters.

Example:

client.restrictChatMember(CHAT_ID, USER_ID, { can_send_messages: true });

promoteChatMember(chatId, userId [, options]) - Official Docs

Promotes or demotes a user in a supergroup or a channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
userIdNumberUnique identifier of the target user.
optionsObjectOther optional parameters.

Example:

client.promoteChatMember(CHAT_ID, USER_ID, {
  can_change_info: true,
  can_invite_users: true,
});

exportChatInviteLink(chatId) - Official Docs

Exports an invite link to a supergroup or a channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.exportChatInviteLink(CHAT_ID);

setChatPhoto(chatId, photo) - Official Docs

Sets a new profile photo for the chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
photoStringPass a file id (recommended) or HTTP URL to send photo.

Example:

client.setChatPhoto(CHAT_ID, 'https://example.com/image.png');

deleteChatPhoto(chatId) - Official Docs

Deletes a chat photo.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.deleteChatPhoto(CHAT_ID);

setChatTitle(chatId, title) - Official Docs

Changes the title of a chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
titleStringNew chat title, 1-255 characters.

Example:

client.setChatTitle(CHAT_ID, 'New Title');

setChatDescription(chatId, description) - Official Docs

Changes the description of a supergroup or a channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
descriptionStringNew chat description, 0-255 characters.

Example:

client.setChatDescription(CHAT_ID, 'New Description');

setChatStickerSet(chatId, stickerSetName) - Official Docs

Set a new group sticker set for a supergroup.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
stickerSetNameStringName of the sticker set to be set as the group sticker set.

Example:

client.setChatStickerSet(CHAT_ID, 'Sticker Set Name');

deleteChatStickerSet(chatId) - Official Docs

Delete a group sticker set from a supergroup.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.deleteChatStickerSet(CHAT_ID);

pinChatMessage(chatId, messageId [, options]) - Official Docs

Pins a message in a supergroup.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
messageIdNumberIdentifier of a message to pin.
optionsObjectOther optional parameters.

Example:

client.pinChatMessage(CHAT_ID, MESSAGE_ID, { disable_notification: true });

unpinChatMessage(chatId) - Official Docs

Unpins a message in a supergroup chat.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.unpinChatMessage(CHAT_ID);

leaveChat(chatId) - Official Docs

Leaves a group, supergroup or channel.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.

Example:

client.leaveChat(CHAT_ID);

Payments API

sendInvoice(chatId, product [, options]) - Official Docs

Sends invoice.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
productObjectObject of the product.
product.titleStringProduct name.
product.descriptionStringProduct description.
product.payloadStringBot defined invoice payload.
product.provider_tokenStringPayments provider token.
product.start_parameterStringDeep-linking parameter.
product.currencyStringThree-letter ISO 4217 currency code.
product.pricesArray<Object>Breakdown of prices.
optionsObjectAdditional Telegram query options.

Example:

client.sendInvoice(CHAT_ID, {
  title: 'product name',
  description: 'product description',
  payload: 'bot-defined invoice payload',
  provider_token: 'PROVIDER_TOKEN',
  start_parameter: 'pay',
  currency: 'USD',
  prices: [
    { label: 'product', amount: 11000 },
    { label: 'tax', amount: 11000 },
  ],
});

answerShippingQuery(shippingQueryId, ok [, options]) - Official Docs

Reply to shipping queries.

ParamTypeDescription
shippingQueryIdStringUnique identifier for the query to be answered.
okBooleanSpecify if delivery of the product is possible.
optionsObjectAdditional Telegram query options.

Example:

client.answerShippingQuery('UNIQUE_ID', true);

answerPreCheckoutQuery(preCheckoutQueryId, ok [, options]) - Official Docs

Respond to such pre-checkout queries.

ParamTypeDescription
preCheckoutQueryIdStringUnique identifier for the query to be answered.
okBooleanSpecify if delivery of the product is possible.
optionsObjectAdditional Telegram query options.

Example:

client.answerPreCheckoutQuery('UNIQUE_ID', true);

Inline mode API

answerInlineQuery(inlineQueryId, results [, options]) - Official Docs

Send answers to an inline query.

ParamTypeDescription
inlineQueryIdStringUnique identifier of the query.
resultsArray<InlineQueryResult>Array of object represents one result of an inline query.
optionsObjectAdditional Telegram query options.

Example:

client.answerInlineQuery(
  'INLINE_QUERY_ID',
  [
    {
      type: 'photo',
      id: 'UNIQUE_ID',
      photo_file_id: 'FILE_ID',
      title: 'PHOTO_TITLE',
    },
    {
      type: 'audio',
      id: 'UNIQUE_ID',
      audio_file_id: 'FILE_ID',
      caption: 'AUDIO_TITLE',
    },
  ],
  {
    cache_time: 1000,
  }
);

Game API

sendGame(chatId, gameShortName [, options]) - Official Docs

Sends a game.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target channel.
gameShortNameStringShort name of the game.
optionsObjectAdditional Telegram query options.

Example:

client.sendGame(CHAT_ID, 'Mario Bros.', {
  disable_notification: true,
});

setGameScore(userId, score [, options]) - Official Docs

Sets the score of the specified user in a game.

ParamTypeDescription
userIdNumber | StringUser identifier.
scoreNumberNew score, must be non-negative.
optionsObjectAdditional Telegram query options.

Example:

client.setGameScore(USER_ID, 999);

getGameHighScores(userId [, options]) - Official Docs

Gets data for high score tables.

ParamTypeDescription
userIdNumber | StringUser identifier.
optionsObjectAdditional Telegram query options.

Example:

client.getGameHighScores(USER_ID).then(scores => {
  console.log(scores);
  // [
  //   {
  //     position: 1,
  //     user: {
  //       id: 427770117,
  //       is_bot: false,
  //       first_name: 'first',
  //     },
  //     score: 999,
  //   },
  // ]
});

Others

forwardMessage(chatId, fromChatId, messageId [, options]) - Official Docs

Forwards messages of any kind.

ParamTypeDescription
chatIdNumber | StringUnique identifier for the target chat or username of the target supergroup or channel.
fromChatIdNumber | StringUnique identifier for the chat where the original message was sent.
messageIdNumberMessage identifier in the chat specified in from_chat_id.
optionsObjectOther optional parameters.

Example:

client.forwardMessage(CHAT_ID, USER_ID, MESSAGE_ID, {
  disable_notification: true,
});

Debug Tips

Log requests details

To enable default request debugger, use following DEBUG env variable:

DEBUG=messaging-api-telegram-proxy

If you want to use custom request logging function, just define your own onRequest:

const client = TelegramClient.connect({
  accessToken: ACCESS_TOKEN,
  onRequest: ({ method, url, headers, body }) => {
    /* */
  },
});

Test

Point requests to your dummy server

To avoid sending requests to real Telegram server, specify origin option when constructing your client:

const { TelegramClient } = require('messaging-api-telegram-proxy');

const client = TelegramClient.connect({
  accessToken: ACCESS_TOKEN,
  origin: 'https://mydummytestserver.com',
});

Warning: Don't do this on production server.

Manual Mock with Jest

create __mocks__/messaging-api-telegram-proxy.js in your project root:

// __mocks__/messaging-api-telegram-proxy.js
const jestMock = require('jest-mock');
const { TelegramClient } = require.requireActual('messaging-api-telegram-proxy');

module.exports = {
  TelegramClient: {
    connect: jest.fn(() => {
      const Mock = jestMock.generateFromMetadata(
        jestMock.getMetadata(TelegramClient)
      );
      return new Mock();
    }),
  },
};

Then, mock messaging-api-telegram-proxy package in your tests:

// __tests__/mytest.spec.js
jest.mock('messaging-api-telegram-proxy');

Keywords

FAQs

Last updated on 29 Sep 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc