Skip to content

Keyboard

Button

from fastvk.keyboard import Button
from fastvk.enums import Color

Button.text

Button.text(
    label: str,
    *,
    color: Color | str = Color.PRIMARY,
    payload: dict | str | None = None,
) -> Button

Создаёт обычную кнопку клавиатуры, которая отправляет текстовое сообщение.

Button.callback

Button.callback(
    label: str,
    *,
    payload: dict | str | None = None,
) -> Button

Создаёт inline (callback) кнопку, которая вызывает message_event.

Button.link(label: str, *, url: str) -> Button

Создаёт кнопку-ссылку. Открывает URL в браузере.

Button.location

Button.location() -> Button

Создаёт кнопку запроса геолокации пользователя.

Button.vkpay

Button.vkpay(
    *,
    action: Literal["pay-to-group", "transfer-to-group", "transfer-to-user"] = "pay-to-group",
    group_id: int | None = None,
    user_id: int | None = None,
    amount: int | None = None,
    description: str = "",
    merchant_id: int | None = None,
    aid: int | None = None,
) -> ButtonDict

Создаёт кнопку VK Pay. Параметр hash строится автоматически из переданных аргументов.

Работает только внутри Keyboard(inline=True).

Color

from fastvk.enums import Color

Color.PRIMARY    # "primary"   — синий
Color.SECONDARY  # "secondary" — белый
Color.POSITIVE   # "positive"  — зелёный
Color.NEGATIVE   # "negative"  — красный

Keyboard

from fastvk.keyboard import Keyboard

Конструктор

Keyboard(
    one_time: bool = False,
    inline: bool = False,
)
Параметр Описание
one_time Скрыть клавиатуру после первого нажатия
inline Прикрепить клавиатуру к сообщению (inline режим)

Методы

kb.row(*buttons: Button) -> Keyboard
Добавить новый ряд с кнопками. Возвращает self для цепочки вызовов.

kb.add(*buttons: Button) -> Keyboard
Добавить кнопки в последний ряд (создаёт первый ряд если пустой). Возвращает self.

kb.build() -> str
Сериализовать в JSON строку клавиатуры VK.

str(kb) -> str
Псевдоним для kb.build().

Keyboard.remove() -> str
Вернуть JSON строку которая убирает клавиатуру из чата.

Пример

from fastvk.keyboard import Button, Keyboard
from fastvk.enums import Color

kb = (
    Keyboard(one_time=True)
    .row(
        Button.text("Да",  color=Color.POSITIVE),
        Button.text("Нет", color=Color.NEGATIVE),
    )
    .row(Button.text("Отмена"))
)

await message.answer("Подтверди?", keyboard=kb)