Have ideas to improve npm?Join in the discussion! »

    messaging-api-telegram-proxy

    1.2.3 • Public • Published

    messaging-api-telegram-proxy

    Messaging API client for Telegram use proxy

    TelegramTelegram

    Table of Contents

    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.

    Param Type Description
    options Object Optional 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.

    Param Type Description
    url String HTTPS 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    text String Text of the message to be sent.
    options Object Other optional parameters.

    Example:

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

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

    Sends photos.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    photo String Pass a file id (recommended) or HTTP URL to send photo.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    audio String Pass a file id (recommended) or HTTP URL to send audio.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    document String Pass a file id (recommended) or HTTP URL to send document.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    sticker String Pass a file id (recommended) or HTTP URL to send sticker.
    options Object Other 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).

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    video String Pass a file id (recommended) or HTTP URL to send video.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    voice String Pass a file id (recommended) or HTTP URL to send voice.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    videoNote String Pass a file id (recommended) or HTTP URL to send video note.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    media Array<InputMedia> A JSON-serialized array describing photos and videos to be sent, must include 2–10 items
    options Object Other optional parameters.

    Example:

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

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

    Sends point on the map.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    location Object Object contains latitude and longitude.
    location.latitude Number Latitude of the location.
    location.longitude Number Longitude of the location.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    venue Object Object contains information of the venue.
    venue.latitude Number Latitude of the venue.
    venue.longitude Number Longitude of the venue.
    venue.title String Name of the venue.
    venue.address String Address of the venue.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    contact Object Object contains information of the contact.
    contact.phone_number String Phone number of the contact.
    contact.first_name String First name of the contact.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    action String Type 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.

    Param Type Description
    userId String Unique identifier of the target user.
    options Object Other 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.

    Param Type Description
    fileId String File 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.

    Param Type Description
    fileId String File 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.)

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    userId Number Unique 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).

    Param Type Description
    text String New text of the message.
    options Object One of chat_id, message_id or inline_message_id is required.
    options.chat_id Number | String Unique identifier for the target chat or username of the target channel.
    options.message_id Number Identifier of the sent message.
    options.inline_message_id String Identifier 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).

    Param Type Description
    caption String New caption of the message.
    options Object One of chat_id, message_id or inline_message_id is required.
    options.chat_id Number | String Unique identifier for the target chat or username of the target channel.
    options.message_id Number Identifier of the sent message.
    options.inline_message_id String Identifier 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).

    Param Type Description
    replyMarkup Object New replyMarkup of the message.
    options Object One of chat_id, message_id or inline_message_id is required.
    options.chat_id Number | String Unique identifier for the target chat or username of the target channel.
    options.message_id Number Identifier of the sent message.
    options.inline_message_id String Identifier 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    messageId Number Identifier 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).

    Param Type Description
    location Object Object contains new latitude and longitude.
    location.latitude Number Latitude of new location.
    location.longitude Number Longitude of new location.
    options Object One of chat_id, message_id or inline_message_id is required.
    options.chat_id Number | String Unique identifier for the target chat or username of the target channel.
    options.message_id Number Identifier of the sent message.
    options.inline_message_id String Identifier 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.

    Param Type Description
    identifier Object One of chat_id, message_id or inline_message_id is required.
    identifier.chat_id Number | String Unique identifier for the target chat or username of the target channel.
    identifier.message_id Number Identifier of the sent message.
    identifier.inline_message_id String Identifier 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    userId Number Unique identifier of the target user.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    userId Number Unique identifier of the target user.

    Example:

    client.unbanChatMember(CHAT_ID, USER_ID);

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

    Restricts a user in a supergroup

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    userId Number Unique identifier of the target user.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    userId Number Unique identifier of the target user.
    options Object Other 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    photo String Pass 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    title String New 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    description String New 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    stickerSetName String Name 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    messageId Number Identifier of a message to pin.
    options Object Other optional parameters.

    Example:

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

    unpinChatMessage(chatId) - Official Docs

    Unpins a message in a supergroup chat.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    product Object Object of the product.
    product.title String Product name.
    product.description String Product description.
    product.payload String Bot defined invoice payload.
    product.provider_token String Payments provider token.
    product.start_parameter String Deep-linking parameter.
    product.currency String Three-letter ISO 4217 currency code.
    product.prices Array<Object> Breakdown of prices.
    options Object Additional 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.

    Param Type Description
    shippingQueryId String Unique identifier for the query to be answered.
    ok Boolean Specify if delivery of the product is possible.
    options Object Additional Telegram query options.

    Example:

    client.answerShippingQuery('UNIQUE_ID', true);

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

    Respond to such pre-checkout queries.

    Param Type Description
    preCheckoutQueryId String Unique identifier for the query to be answered.
    ok Boolean Specify if delivery of the product is possible.
    options Object Additional Telegram query options.

    Example:

    client.answerPreCheckoutQuery('UNIQUE_ID', true);

    Inline mode API

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

    Send answers to an inline query.

    Param Type Description
    inlineQueryId String Unique identifier of the query.
    results Array<InlineQueryResult> Array of object represents one result of an inline query.
    options Object Additional 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target channel.
    gameShortName String Short name of the game.
    options Object Additional 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.

    Param Type Description
    userId Number | String User identifier.
    score Number New score, must be non-negative.
    options Object Additional Telegram query options.

    Example:

    client.setGameScore(USER_ID, 999);

    getGameHighScores(userId [, options]) - Official Docs

    Gets data for high score tables.

    Param Type Description
    userId Number | String User identifier.
    options Object Additional 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.

    Param Type Description
    chatId Number | String Unique identifier for the target chat or username of the target supergroup or channel.
    fromChatId Number | String Unique identifier for the chat where the original message was sent.
    messageId Number Message identifier in the chat specified in from_chat_id.
    options Object Other 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');

    Install

    npm i messaging-api-telegram-proxy

    DownloadsWeekly Downloads

    3

    Version

    1.2.3

    License

    MIT

    Unpacked Size

    69.3 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar