Class Telegraf<C>

Type Parameters

Hierarchy

Constructors

Properties

botInfo?: UserFromGetMe

Set manually to avoid implicit getMe call in launch or webhookCallback

botInfoCall?: Promise<UserFromGetMe>
context: Partial<C> = {}
options: Options<C>
polling?: Polling
telegram: Telegram
webhookFilter: ((this: {
    hookPath: string;
    secretToken?: string;
}, req: IncomingMessage) => boolean) = ...

Type declaration

    • (this: {
          hookPath: string;
          secretToken?: string;
      }, req: IncomingMessage): boolean
    • Assign to this to customise the webhook filter middleware. { hookPath, secretToken } will be bound to this rather than the Telegraf instance. Remember to assign a regular function and not an arrow function so it's bindable.

      Parameters

      • this: {
            hookPath: string;
            secretToken?: string;
        }
        • hookPath: string
        • Optional secretToken?: string
      • req: IncomingMessage

      Returns boolean

webhookServer?: Server<typeof IncomingMessage, typeof ServerResponse> | Server<typeof IncomingMessage, typeof ServerResponse>
mount: {
    <Ctx, Filter>(filters: MaybeArray<Filter>, ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>): MiddlewareFn<Ctx>;
    <Ctx, Filter>(filters: MaybeArray<Filter>, ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<Ctx, MountMap[Filter]>>>): MiddlewareFn<Ctx>;
} = Composer.on

Type declaration

    • <Ctx, Filter>(filters: MaybeArray<Filter>, ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>): MiddlewareFn<Ctx>
    • Generates middleware for handling provided update types.

      Deprecated

      use Composer.on instead

      Type Parameters

      • Ctx extends Context<Update, Ctx>

      • Filter extends UpdateType | Guard<Ctx["update"], Ctx["update"]>

      Parameters

      • filters: MaybeArray<Filter>
      • Rest ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>

      Returns MiddlewareFn<Ctx>

    • <Ctx, Filter>(filters: MaybeArray<Filter>, ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<Ctx, MountMap[Filter]>>>): MiddlewareFn<Ctx>
    • Generates middleware for handling provided update types.

      Deprecated

      use Composer.on instead

      Type Parameters

      • Ctx extends Context<Update, Ctx>

      • Filter extends "text" | "animation" | "audio" | "document" | "photo" | "sticker" | "video" | "video_note" | "voice" | "callback_query" | "channel_post" | "chat_member" | "chosen_inline_result" | "edited_channel_post" | "edited_message" | "inline_query" | "message" | "my_chat_member" | "pre_checkout_query" | "poll_answer" | "poll" | "shipping_query" | "chat_join_request" | "channel_chat_created" | "chat_shared" | "connected_website" | "delete_chat_photo" | "group_chat_created" | "invoice" | "left_chat_member" | "message_auto_delete_timer_changed" | "migrate_from_chat_id" | "migrate_to_chat_id" | "new_chat_members" | "new_chat_photo" | "new_chat_title" | "passport_data" | "proximity_alert_triggered" | "forum_topic_created" | "forum_topic_closed" | "forum_topic_reopened" | "pinned_message" | "successful_payment" | "supergroup_chat_created" | "user_shared" | "video_chat_scheduled" | "video_chat_started" | "video_chat_ended" | "video_chat_participants_invited" | "web_app_data" | "has_media_spoiler" | "forward_date" | "contact" | "dice" | "location" | "game" | "venue"

      Parameters

      Returns MiddlewareFn<Ctx>

Accessors

  • get webhookReply(): boolean
  • Deprecated

    use ctx.telegram.webhookReply

    Returns boolean

  • set webhookReply(webhookReply: boolean): void
  • Deprecated

    use ctx.telegram.webhookReply

    Parameters

    • webhookReply: boolean

    Returns void

Methods

  • Registers middleware for handling matching callback queries.

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "callback_query">

    Returns Telegraf<C>

  • Parameters

    • cashtag: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Override error handling

    Parameters

    • handler: ((err: unknown, ctx: C) => MaybePromise<void>)
        • (err: unknown, ctx: C): MaybePromise<void>
        • Parameters

          • err: unknown
          • ctx: C

          Returns MaybePromise<void>

    Returns Telegraf<C>

  • Registers middleware for handling specified commands.

    Parameters

    • command: Triggers<C>
    • Rest ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<C, {
          message: New & NonChannel & TextMessage;
          update_id: number;
      }>>>

    Returns Telegraf<C>

  • Specify a url to receive incoming updates via webhook. Returns an Express-style middleware you can pass to app.use()

    Parameters

    • opts: {
          domain: string;
          path?: string;
      } & Omit<{}, "url" | "chat_id">

    Returns Promise<((req: IncomingMessage & {
        body?: Update;
    }, res: ServerResponse<IncomingMessage>, next?: (() => void)) => Promise<void>)>

  • Parameters

    • email: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Parameters

    • opts: {
          domain: string;
          path?: string;
      }
      • domain: string
      • Optional path?: string

    Returns {
        domain: string;
        path: string;
        url: string;
    }

    • domain: string
    • path: string
    • url: string
  • Registers middleware for handling updates matching given type guard function.

    Deprecated

    use Composer::on

    Type Parameters

    • U extends Update

    Parameters

    • guardFn: ((update: Update) => update is U)
        • (update: Update): update is U
        • Parameters

          • update: Update

          Returns update is U

    • Rest ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<C, U>>>

    Returns Telegraf<C>

  • Parameters

    • err: unknown
    • ctx: C

    Returns MaybePromise<void>

  • Parameters

    • update: Update
    • Optional webhookResponse: ServerResponse<IncomingMessage>

    Returns Promise<void>

  • Parameters

    • hashtag: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Registers middleware for handling matching text messages.

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "text">

    Returns Telegraf<C>

  • Registers middleware for handling matching inline queries.

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "inline_query">

    Returns Telegraf<C>

  • Parameters

    • mention: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Registers middleware for handling updates narrowed by update types or filter queries.

    Type Parameters

    • Filter extends UpdateType | Guard<C["update"], C["update"]>

    Parameters

    • filters: MaybeArray<Filter>
    • Rest ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<C, Filter>>>

    Returns Telegraf<C>

  • Registers middleware for handling updates narrowed by update types or message subtypes.

    Deprecated

    Use filter utils instead. Support for Message subtype in Composer::on will be removed in Telegraf v5.

    Type Parameters

    • Filter extends "text" | "animation" | "audio" | "document" | "photo" | "sticker" | "video" | "video_note" | "voice" | "callback_query" | "channel_post" | "chat_member" | "chosen_inline_result" | "edited_channel_post" | "edited_message" | "inline_query" | "message" | "my_chat_member" | "pre_checkout_query" | "poll_answer" | "poll" | "shipping_query" | "chat_join_request" | "channel_chat_created" | "chat_shared" | "connected_website" | "delete_chat_photo" | "group_chat_created" | "invoice" | "left_chat_member" | "message_auto_delete_timer_changed" | "migrate_from_chat_id" | "migrate_to_chat_id" | "new_chat_members" | "new_chat_photo" | "new_chat_title" | "passport_data" | "proximity_alert_triggered" | "forum_topic_created" | "forum_topic_closed" | "forum_topic_reopened" | "pinned_message" | "successful_payment" | "supergroup_chat_created" | "user_shared" | "video_chat_scheduled" | "video_chat_started" | "video_chat_ended" | "video_chat_participants_invited" | "web_app_data" | "has_media_spoiler" | "forward_date" | "contact" | "dice" | "location" | "game" | "venue"

    Parameters

    Returns Telegraf<C>

  • Parameters

    • number: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Parameters

    • text: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Registers a middleware for handling /start

    Parameters

    • Rest ...fns: NonemptyReadonlyArray<Middleware<Context<{
          message: New & NonChannel & TextMessage;
          update_id: number;
      }> & Omit<C, keyof Context<Update>> & {
          startPayload: string;
      }>>

    Returns Telegraf<C>

  • Parameters

    • hookPath: string
    • Optional tlsOptions: TlsOptions
    • Optional port: number
    • Optional host: string
    • Optional cb: RequestListener<typeof IncomingMessage, typeof ServerResponse>
    • Optional secretToken: string

    Returns Telegraf<C>

  • Parameters

    • reason: string = 'unspecified'

    Returns void

  • Parameters

    • link: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Parameters

    • mention: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • Parameters

    • url: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns Telegraf<C>

  • You must call bot.telegram.setWebhook for this to work. You should probably use createWebhook instead.

    Parameters

    • hookPath: string = '/'
    • opts: {
          secretToken?: string;
      } = {}
      • Optional secretToken?: string

    Returns ((req: IncomingMessage & {
        body?: Update;
    }, res: ServerResponse<IncomingMessage>, next?: (() => void)) => Promise<void>)

      • (req: IncomingMessage & {
            body?: Update;
        }, res: ServerResponse<IncomingMessage>, next?: (() => void)): Promise<void>
      • Parameters

        • req: IncomingMessage & {
              body?: Update;
          }
        • res: ServerResponse<IncomingMessage>
        • next: (() => void) = ...
            • (): void
            • Returns void

        Returns Promise<void>

  • Generates middleware for handling matching callback queries.

    Type Parameters

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "callback_query">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • cashtag: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Generates middleware running only in specified chat types.

    Type Parameters

    Parameters

    • type: MaybeArray<"channel" | "group" | "supergroup" | "private">
    • Rest ...fns: NonemptyReadonlyArray<Middleware<C>>

    Returns MiddlewareFn<C>

  • Type Parameters

    • C extends Context<Update, C>

    • Handlers extends Record<string | number | symbol, Middleware<C>>

    Parameters

    • routeFn: ((ctx: C) => MaybePromise<keyof Handlers>)
        • (ctx: C): MaybePromise<keyof Handlers>
        • Parameters

          • ctx: C

          Returns MaybePromise<keyof Handlers>

    • handlers: Handlers

    Returns Middleware<C>

  • Type Parameters

    Parameters

    • email: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • entityType: MaybeArray<string>
    • predicate: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Generates optional middleware based on a predicate that only operates on ctx.update.

    Example:

    import { Composer, Update } from 'telegraf'

    const predicate = (u): u is Update.MessageUpdate => 'message' in u
    const middleware = Composer.guard(predicate, (ctx) => {
    const message = ctx.update.message
    })

    Note that Composer.on('message') is preferred over this.

    See

    Composer.optional for a more generic version of this method that allows the predicate to operate on ctx itself

    Deprecated

    use Composer.on

    Type Parameters

    • C extends Context<Update, C>

    • U extends Update

    Parameters

    • guardFn: ((u: Update) => u is U)

      predicate to decide whether to run the middleware based on the ctx.update object

        • (u: Update): u is U
        • Parameters

          • u: Update

          Returns u is U

    • Rest ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<C, U>>>

      middleware to run if the predicate returns true

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • hashtag: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Generates middleware for handling matching text messages.

    Type Parameters

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "text">

    Returns MiddlewareFn<C>

  • Generates middleware for handling matching inline queries.

    Type Parameters

    Parameters

    • triggers: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "inline_query">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • mention: MaybeArray<string>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Generates middleware for handling updates narrowed by update types or filter queries.

    Type Parameters

    • Ctx extends Context<Update, Ctx>

    • Filter extends UpdateType | Guard<Ctx["update"], Ctx["update"]>

    Parameters

    • filters: MaybeArray<Filter>
    • Rest ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>

    Returns MiddlewareFn<Ctx>

  • Generates middleware for handling updates narrowed by update types or message subtype.

    Deprecated

    Use filter utils instead. Support for Message subtype in Composer.on will be removed in Telegraf v5.

    Type Parameters

    • Ctx extends Context<Update, Ctx>

    • Filter extends "text" | "animation" | "audio" | "document" | "photo" | "sticker" | "video" | "video_note" | "voice" | "callback_query" | "channel_post" | "chat_member" | "chosen_inline_result" | "edited_channel_post" | "edited_message" | "inline_query" | "message" | "my_chat_member" | "pre_checkout_query" | "poll_answer" | "poll" | "shipping_query" | "chat_join_request" | "channel_chat_created" | "chat_shared" | "connected_website" | "delete_chat_photo" | "group_chat_created" | "invoice" | "left_chat_member" | "message_auto_delete_timer_changed" | "migrate_from_chat_id" | "migrate_to_chat_id" | "new_chat_members" | "new_chat_photo" | "new_chat_title" | "passport_data" | "proximity_alert_triggered" | "forum_topic_created" | "forum_topic_closed" | "forum_topic_reopened" | "pinned_message" | "successful_payment" | "supergroup_chat_created" | "user_shared" | "video_chat_scheduled" | "video_chat_started" | "video_chat_ended" | "video_chat_participants_invited" | "web_app_data" | "has_media_spoiler" | "forward_date" | "contact" | "dice" | "location" | "game" | "venue"

    Parameters

    Returns MiddlewareFn<Ctx>

  • Generates optional middleware.

    Type Parameters

    Parameters

    • predicate: Predicate<C> | AsyncPredicate<C>

      predicate to decide on a context object whether to run the middleware

    • Rest ...fns: NonemptyReadonlyArray<Middleware<C>>

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • number: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • text: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • link: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

  • Type Parameters

    Parameters

    • url: Triggers<C>
    • Rest ...fns: MatchedMiddleware<C, "channel_post" | "message">

    Returns MiddlewareFn<C>

Generated using TypeDoc