kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn

Как отправить только клавиатуру VK API?

В боте есть несколько разных клавиатур, под разные задачи, но нужно что-бы стартовая всегда была активна. Если выставить опцию "one_time": false, вызвать другую клавиатуру, выбрать функцию, после которой побочная клавиатура закроется основная при этом не открывается, пока не ввести ключевое слово, которое ее должно вызывать. Без расчета на решение решил попробовать:
if event.object.text:
                        self.vk_api.messages.send(
                            user_id=event.object.from_id,
                            random_id=random.getrandbits(32),
                            message='',
                            keyboard=open("keyboard/start_keyboard.json", "r", encoding="UTF-8").read()
                        )

Но, естественно как и ожидалось - ошибка. Отправлять пустое сообщение нельзя.
Мне нужно, что-бы вне зависимости от того, что пишет пользователь боту всегда была активна основная клавиатура (start_keyboard.json) и только в случае выбора определенных опций открывали другие.
Как подобное можно реализовать?
  • Вопрос задан
  • 2291 просмотр
Решения вопроса 1
@StockholmSyndrome
когда пользователь жмёт на побочную клавиатуру, отправляйте не пустое сообщение, а какое-нибудь "отличный выбор" и возвращайте старую клавиатуру
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AlerX
Пример клавиатуры
keyboard1234 = {
    "one_time": True,
    "buttons": [
        [{
            "action": {
                "type": "text",
                "payload": "{\"button\": \"1\"}",
                "label": "Кнопка"
            },
            "color": "positive"
        },
            {
                "action": {
                    "type": "text",
                    "payload": "{\"button\": \"2\"}",
                    "label": "Кнопка"
                },
                "color": "positive"
            }]

    ]


В Клавиатуре есть параметр One_Time, если он поставлен на True - клавиатурой можно будет воспользоваться один раз. А если False она будет активна до тех пор пока вы не отправите новую клавиатуру.

Отправить просто клавиатуру не получится, она отправляется с сообщением.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы