aiogram.api.methods.answer_callback_query

aiogram/api/methods/answer_callback_query.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from __future__ import annotations

from typing import TYPE_CHECKING, Any, Dict, Optional

from .base import Request, TelegramMethod

if TYPE_CHECKING:  # pragma: no cover
    from ..client.bot import Bot


class AnswerCallbackQuery(TelegramMethod[bool]):
    """
    Use this method to send answers to callback queries sent from inline keyboards. The answer
    will be displayed to the user as a notification at the top of the chat screen or as an alert.
    On success, True is returned.
    Alternatively, the user can be redirected to the specified Game URL. For this option to work,
    you must first create a game for your bot via @Botfather and accept the terms. Otherwise, you
    may use links like t.me/your_bot?start=XXXX that open your bot with a parameter.

    Source: https://core.telegram.org/bots/api#answercallbackquery
    """

    __returning__ = bool

    callback_query_id: str
    """Unique identifier for the query to be answered"""
    text: Optional[str] = None
    """Text of the notification. If not specified, nothing will be shown to the user, 0-200
    characters"""
    show_alert: Optional[bool] = None
    """If true, an alert will be shown by the client instead of a notification at the top of the
    chat screen. Defaults to false."""
    url: Optional[str] = None
    """URL that will be opened by the user's client. If you have created a Game and accepted the
    conditions via @Botfather, specify the URL that opens your game — note that this will only
    work if the query comes from a callback_game button."""
    cache_time: Optional[int] = None
    """The maximum amount of time in seconds that the result of the callback query may be cached
    client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0."""

    def build_request(self, bot: Bot) -> Request:
        data: Dict[str, Any] = self.dict()

        return Request(method="answerCallbackQuery", data=data)