Бот создает клавиатуру в ответе:
$keyboard = [
"keyboard" => [[
[
"text" => "contact"
],
[
"text" => "location"
]
]],
"one_time_keyboard" => true //параметр должен убирать клавиатуру
//после клика на одну из кнопок
];
но после нажатия на одну из кнопок, символ клавиатуры остается возле поля ввода:
Как ее все-таки убрать?
Пока пользуюсь способом отправки нового сообщения с
$keyboard = [
'remove_keyboard' => true
];
но это не удобно для пользователя.
Истинное значение поля one_time_keyboard объекта ReplyKeyboardMarkup всего лишь инструктирует программу-клиент скрыть клавиатуру, но она всё равно будет доступна по нажатию на специальную кнопку.
Если в ответ на нажатие кнопки бот отправляет пользователю сообщение, можно убрать клавиатуру. Для этого в при вызове sendMessage нужно дополнительно в параметре reply_markup передать объект ReplyKeyboardRemove.
А метод editMessageReplyMarkup предназначен для редактирования полупрозрачных inline-клавиатур, которые прикрепляются к сообщению. Этот тип клавиатур был введён в апреле прошлого года.
Продвижение своими сайтами как стратегия роста и независимости