telegram.ext.CallbackQueryHandler¶
-
class
telegram.ext.CallbackQueryHandler(callback, pass_update_queue=False, pass_job_queue=False, pattern=None, pass_groups=False, pass_groupdict=False, pass_user_data=False, pass_chat_data=False, run_async=False)¶ Bases:
telegram.ext.handler.Handler[telegram.update.Update,telegram.ext.utils.types.CCT]Handler class to handle Telegram callback queries. Optionally based on a regex.
Read the documentation of the
remodule for more information.Note
pass_user_dataandpass_chat_datadetermine whether adictyou can use to keep any data in will be sent to thecallbackfunction. Related to either the user or the chat that the update was sent in. For each update from the same user or in the same chat, it will be the samedict.Note that this is DEPRECATED, and you should use context based callbacks. See https://github.com/python-telegram-bot/python-telegram-bot/wiki /Transition-guide-to-Version-12.0 for more info.
If your bot allows arbitrary objects as
callback_data, it may happen that the originalcallback_datafor the incomingtelegram.CallbackQuery`can not be found. This is the case when either a malicious client tempered with thecallback_dataor the data was simply dropped from cache or not persisted. In these cases, an instance oftelegram.ext.InvalidCallbackDatawill be set ascallback_data.New in version 13.6.
Warning
When setting
run_asynctoTrue, you cannot rely on adding custom attributes totelegram.ext.CallbackContext. See its docs for more info.- Parameters
callback (
callable) –The callback function for this handler. Will be called when
check_updatehas determined that an update should be processed by this handler. Callback signature for context based API:def callback(update: Update, context: CallbackContext)The return value of the callback is usually ignored except for the special case of
telegram.ext.ConversationHandler.pass_update_queue (
bool, optional) – If set toTrue, a keyword argument calledupdate_queuewill be passed to the callback function. It will be theQueueinstance used by thetelegram.ext.Updaterandtelegram.ext.Dispatcherthat contains new updates which can be used to insert updates. Default isFalse. DEPRECATED: Please switch to context based callbacks.pass_job_queue (
bool, optional) – If set toTrue, a keyword argument calledjob_queuewill be passed to the callback function. It will be atelegram.ext.JobQueueinstance created by thetelegram.ext.Updaterwhich can be used to schedule new jobs. Default isFalse. DEPRECATED: Please switch to context based callbacks.pattern (
str| Pattern |callable|type, optional) –Pattern to test
telegram.CallbackQuery.dataagainst. If a string or a regex pattern is passed,re.match()is used ontelegram.CallbackQuery.datato determine if an update should be handled by this handler. If your bot allows arbitrary objects ascallback_data, non-strings will be accepted. To filter arbitrary objects you may passa callable, accepting exactly one argument, namely the
telegram.CallbackQuery.data. It must returnTrueorFalse/Noneto indicate, whether the update should be handled.a
type. Iftelegram.CallbackQuery.datais an instance of that type (or a subclass), the update will be handled.
If
telegram.CallbackQuery.dataisNone, thetelegram.CallbackQueryupdate will not be handled.Changed in version 13.6: Added support for arbitrary callback data.
pass_groups (
bool, optional) – If the callback should be passed the result ofre.match(pattern, data).groups()as a keyword argument calledgroups. Default isFalseDEPRECATED: Please switch to context based callbacks.pass_groupdict (
bool, optional) – If the callback should be passed the result ofre.match(pattern, data).groupdict()as a keyword argument calledgroupdict. Default isFalseDEPRECATED: Please switch to context based callbacks.pass_user_data (
bool, optional) – If set toTrue, a keyword argument calleduser_datawill be passed to the callback function. Default isFalse. DEPRECATED: Please switch to context based callbacks.pass_chat_data (
bool, optional) – If set toTrue, a keyword argument calledchat_datawill be passed to the callback function. Default isFalse. DEPRECATED: Please switch to context based callbacks.run_async (
bool) – Determines whether the callback will run asynchronously. Defaults toFalse.
-
callback¶ The callback function for this handler.
- Type
callable
-
pass_update_queue¶ Determines whether
update_queuewill be passed to the callback function.- Type
bool
-
pass_job_queue¶ Determines whether
job_queuewill be passed to the callback function.- Type
bool
-
pattern¶ Optional. Regex pattern, callback or type to test
telegram.CallbackQuery.dataagainst.Changed in version 13.6: Added support for arbitrary callback data.
- Type
Pattern |
callable|type
-
pass_groups¶ Determines whether
groupswill be passed to the callback function.- Type
bool
-
pass_groupdict¶ Determines whether
groupdict. will be passed to the callback function.- Type
bool
-
pass_user_data¶ Determines whether
user_datawill be passed to the callback function.- Type
bool
-
pass_chat_data¶ Determines whether
chat_datawill be passed to the callback function.- Type
bool
-
run_async¶ Determines whether the callback will run asynchronously.
- Type
bool
-
check_update(update)¶ Determines whether an update should be passed to this handlers
callback.- Parameters
update (
telegram.Update|object) – Incoming update.- Returns
bool
-
collect_additional_context(context, update, dispatcher, check_result)¶ Add the result of
re.match(pattern, update.callback_query.data)toCallbackContext.matchesas list with one element.
-
collect_optional_args(dispatcher, update=None, check_result=None)¶ Pass the results of
re.match(pattern, data).{groups(), groupdict()}to the callback as a keyword arguments calledgroupsandgroupdict, respectively, if needed.