Вывод Reply кнопки и блокировка клавиатуры

Рейтинг: 0Ответов: 2Опубликовано: 06.02.2023

При старте телеграм бота по команде /start выводится Reply кнопка, при этом необходимо заблокировать возможность пользователя что-то ввести в поле для ввода. Как это поле скрыть либо заблокировать функционал клавиатуры?

https://disk.yandex.ru/i/0r57wT_edGilPw

Функция вывода кнопки

def sogl_keyboard():
    sogl_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    sogl_check = types.KeyboardButton('✅ Даю согласие на обработку персональных данных')
    sogl_keyboard.add(sogl_check)
    return sogl_keyboard

Ответы

▲ 0

Не уверен что это возможно, где ты видел в Телеге чтобы если ты заходишь в чат и у тебя там нету доступа к полю чтобы написать сообщение?

Суть бота - чтобы человек смог текстом либо кнопками взаимодействовать с ботом и какая-то программа это все отрабатывала и возвращала ответ.

Как по мне это лучше сделать inline кнопкой, если ты боишься что юзер что-то сломает (либо реплай кнопкой и проверять текст, если текст нужный - значит человек согласен, если не тот - значит так и напиши что человек должен принять условия)

▲ -1

Чтобы скрыть поле ввода вы можете использовать reply_markup параметр в send_message методе:

bot.send_message(message.chat.id, 'Я соглашаюсь на обработку данных', reply_markup=types.ReplyKeyboardRemove())

Но в вашем варианте надо добавить просто еще один параметр:

sogl_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)

Вместо вашего:

sogl_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)

Все вместе:

def sogl_keyboard():
    sogl_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    sogl_check = types.KeyboardButton('✅ Даю согласие на обработку персональных данных')
    sogl_keyboard.add(sogl_check)
    return sogl_keyboard