telegram.CallbackQuery

class telegram.CallbackQuery(id, from_user, chat_instance, message=None, data=None, inline_message_id=None, game_short_name=None, bot=None, **_kwargs)

Bases: telegram.base.TelegramObject

This object represents an incoming callback query from a callback button in an inline keyboard.

If the button that originated the query was attached to a message sent by the bot, the field message will be present. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be present.

Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their id is equal.

Note

  • In Python from is a reserved word, use from_user instead.

  • Exactly one of the fields data or game_short_name will be present.

  • After the user presses an inline button, Telegram clients will display a progress bar until you call answer. It is, therefore, necessary to react by calling telegram.Bot.answer_callback_query even if no notification to the user is needed (e.g., without specifying any of the optional parameters).

  • If you’re using Bot.arbitrary_callback_data, data may be an instance of telegram.ext.InvalidCallbackData. This will be the case, if the data associated with the button triggering the telegram.CallbackQuery was already deleted or if data was manipulated by a malicious client.

    New in version 13.6.

Parameters
  • id (str) – Unique identifier for this query.

  • from_user (telegram.User) – Sender.

  • chat_instance (str) – Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games.

  • message (telegram.Message, optional) – Message with the callback button that originated the query. Note that message content and message date will not be available if the message is too old.

  • data (str, optional) – Data associated with the callback button. Be aware that a bad client can send arbitrary data in this field.

  • inline_message_id (str, optional) – Identifier of the message sent via the bot in inline mode, that originated the query.

  • game_short_name (str, optional) – Short name of a Game to be returned, serves as the unique identifier for the game

  • bot (telegram.Bot, optional) – The Bot to use for instance methods.

id

Unique identifier for this query.

Type

str

from_user

Sender.

Type

telegram.User

chat_instance

Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent.

Type

str

message

Optional. Message with the callback button that originated the query.

Type

telegram.Message

data

Optional. Data associated with the callback button.

Type

str | object

inline_message_id

Optional. Identifier of the message sent via the bot in inline mode, that originated the query.

Type

str

game_short_name

Optional. Short name of a Game to be returned.

Type

str

bot

The Bot to use for instance methods.

Type

telegram.Bot, optional

MAX_ANSWER_TEXT_LENGTH: ClassVar[int] = 200

telegram.constants.MAX_ANSWER_CALLBACK_QUERY_TEXT_LENGTH

New in version 13.2.

answer(text=None, show_alert=False, url=None, cache_time=None, timeout=None, api_kwargs=None)

Shortcut for:

bot.answer_callback_query(update.callback_query.id, *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.answer_callback_query().

Returns

On success, True is returned.

Return type

bool

copy_message(chat_id, caption=None, parse_mode=None, caption_entities=None, disable_notification=None, reply_to_message_id=None, allow_sending_without_reply=None, reply_markup=None, timeout=None, api_kwargs=None)

Shortcut for:

update.callback_query.message.copy(
    chat_id,
    from_chat_id=update.message.chat_id,
    message_id=update.message.message_id,
    *args,
    **kwargs)

For the documentation of the arguments, please see telegram.Message.copy().

Returns

On success, returns the MessageId of the sent message.

Return type

telegram.MessageId

classmethod de_json(data, bot)

See telegram.TelegramObject.de_json().

delete_message(timeout=None, api_kwargs=None)

Shortcut for:

update.callback_query.message.delete(*args, **kwargs)

For the documentation of the arguments, please see telegram.Message.delete().

Returns

On success, True is returned.

Return type

bool

edit_message_caption(caption=None, reply_markup=None, timeout=None, parse_mode=None, api_kwargs=None, caption_entities=None)

Shortcut for either:

update.callback_query.message.edit_caption(caption, *args, **kwargs)

or:

bot.edit_message_caption(caption=caption
                        inline_message_id=update.callback_query.inline_message_id,
                       *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.edit_message_caption() and telegram.Message.edit_caption().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

edit_message_live_location(latitude=None, longitude=None, location=None, reply_markup=None, timeout=None, api_kwargs=None, horizontal_accuracy=None, heading=None, proximity_alert_radius=None)

Shortcut for either:

update.callback_query.message.edit_live_location(*args, **kwargs)

or:

bot.edit_message_live_location(
    inline_message_id=update.callback_query.inline_message_id,
    *args, **kwargs
)

For the documentation of the arguments, please see telegram.Bot.edit_message_live_location() and telegram.Message.edit_live_location().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

edit_message_media(media=None, reply_markup=None, timeout=None, api_kwargs=None)

Shortcut for either:

update.callback_query.message.edit_media(*args, **kwargs)

or:

bot.edit_message_media(inline_message_id=update.callback_query.inline_message_id,
                       *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.edit_message_media() and telegram.Message.edit_media().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

edit_message_reply_markup(reply_markup=None, timeout=None, api_kwargs=None)

Shortcut for either:

update.callback_query.message.edit_reply_markup(
    reply_markup=reply_markup,
    *args,
    **kwargs
)

or:

bot.edit_message_reply_markup
    inline_message_id=update.callback_query.inline_message_id,
    reply_markup=reply_markup,
    *args,
    **kwargs
)

For the documentation of the arguments, please see telegram.Bot.edit_message_reply_markup() and telegram.Message.edit_reply_markup().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

edit_message_text(text, parse_mode=None, disable_web_page_preview=None, reply_markup=None, timeout=None, api_kwargs=None, entities=None)

Shortcut for either:

update.callback_query.message.edit_text(text, *args, **kwargs)

or:

bot.edit_message_text(text, inline_message_id=update.callback_query.inline_message_id,
                    *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.edit_message_text() and telegram.Message.edit_text().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

get_game_high_scores(user_id, timeout=None, api_kwargs=None)

Shortcut for either:

update.callback_query.message.get_game_high_score(*args, **kwargs)

or:

bot.get_game_high_scores(inline_message_id=update.callback_query.inline_message_id,
                         *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.get_game_high_scores() and telegram.Message.get_game_high_score().

Returns

List[telegram.GameHighScore]

pin_message(disable_notification=None, timeout=None, api_kwargs=None)

Shortcut for:

update.callback_query.message.pin(*args, **kwargs)

For the documentation of the arguments, please see telegram.Message.pin().

Returns

On success, True is returned.

Return type

bool

set_game_score(user_id, score, force=None, disable_edit_message=None, timeout=None, api_kwargs=None)

Shortcut for either:

update.callback_query.message.set_game_score(*args, **kwargs)

or:

bot.set_game_score(inline_message_id=update.callback_query.inline_message_id,
                   *args, **kwargs)

For the documentation of the arguments, please see telegram.Bot.set_game_score() and telegram.Message.set_game_score().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

stop_message_live_location(reply_markup=None, timeout=None, api_kwargs=None)

Shortcut for either:

update.callback_query.message.stop_live_location(*args, **kwargs)

or:

bot.stop_message_live_location(
    inline_message_id=update.callback_query.inline_message_id,
    *args, **kwargs
)

For the documentation of the arguments, please see telegram.Bot.stop_message_live_location() and telegram.Message.stop_live_location().

Returns

On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.

Return type

telegram.Message

unpin_message(timeout=None, api_kwargs=None)

Shortcut for:

update.callback_query.message.unpin(*args, **kwargs)

For the documentation of the arguments, please see telegram.Message.unpin().

Returns

On success, True is returned.

Return type

bool