@DmitryLife

Как сделать многоуровневое меню Telegram bot api?

Доброй ночи. Пишу на PHP бота для телеграма. Использую API напрямую.

Используя клавиатуру (keyboard), задаю кнопки. Например:
$bord = array(
	"keyboard" => array(
		array(
			array(
				"text" => "Привет!"
			)
		)
	),
);


Появляется клавиатура с кнопкой "Привет!". При нажатие пользователем, текст дублируется , как сообщение пользователя и передаеться мне через WebHook.

Теперь я могу отловить действие данной кнопки прописав switch, где буду ловить имя кнопки и делать нужное мне действие. Все вроде хорошо и просто. НО! Проблема появляется, когда я делаю многоуровневое меню.

Ну например.

По нажатию кнопки "Привет!" открывается новое меню, где вполне возможно есть кнопка с таким же названием (это актуально с кнопками "назад"). И теперь когда я в свитче буду обрабатывать действие по написанию сообщения "Привет!", программа не будет понимать из какого именно меню пришел запрос.

Как вариант решения, это отлавливать переход пользователя на следующий уровень в меню и записывать данные о переходи в БД. НО РАЗВЕ нет решения подобного, как callback_data у инлайн кнопок? Чтобы я мог записывать идентификатор кнопок, а не их названия?

Спасибо за внимание.
  • Вопрос задан
  • 1066 просмотров
Решения вопроса 1
@lightmanLP
Задушил питона
Добавь почти незаметные отличая вроде .! или используй БД (например mysql) чтобы хранить данные о текущем меню по id написавшего.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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