send_chat_action()

Client.send_chat_action()

Use this method when you need to tell the user that something is happening on the bot’s side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status).

Usable by Users Bots

We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive.

Parameters:
  • chat_id (``int`` | ``str``) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str).

  • action (:obj:`~pyrogram.enums.ChatAction`) – Type of action to broadcast.

  • progress (``int``, *optional*) – Upload progress, as a percentage.

  • message_thread_id (``int``, *optional*) – Unique identifier for the target message thread or topic of a forum; for supergroups and private chats of bots with forum topic mode enabled only.

  • business_connection_id (``str``, *optional*) – Unique identifier of the business connection on behalf of which the action will be sent

  • emoji (``str``, *optional*) – The animated emoji. Only supported for TRIGGER_EMOJI_ANIMATION and WATCH_EMOJI_ANIMATION.

  • emoji_message_id (``int``, *optional*) – Message identifier of the message containing the animated emoji. Only supported for TRIGGER_EMOJI_ANIMATION.

  • emoji_message_interaction (:obj:`raw.types.DataJSON`, *optional*) – Only supported for TRIGGER_EMOJI_ANIMATION.

Returns:

``bool`` (On success, True is returned.)

Raises:

ValueError – In case the provided string is not a valid chat action.:

Example

from pyrogram import enums

# Send "typing" chat action
await app.send_chat_action(chat_id, enums.ChatAction.TYPING)

# Send "upload_video" chat action
await app.send_chat_action(chat_id, enums.ChatAction.UPLOAD_VIDEO)

# Send "playing" chat action
await app.send_chat_action(chat_id, enums.ChatAction.PLAYING)

# Cancel any current chat action
await app.send_chat_action(chat_id, enums.ChatAction.CANCEL)