@CapitanFreeloader

Как получить несколько post обращений?

Даже не знаю как можно подойти к этому вопросу. Пишу бота, дошел до команды настроек (чтобы пользователь мог подстраивать его под себя). Планируется делать через "диалог":
-/settings
-Укажите регион (и тут вылазит инлайн клавиатура с регионами)

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

Весь код прилагать не буду, вот обработчик команд:
//тут еще свич и тд
case '/settings':
			$keyboard = array(
				array(
					array('text' => '1', 'callback_data' => 'callback'),
					array('text' => '2', 'callback_data' => 'callback'),
					array('text' => '3', 'callback_data' => 'callback')
					)
				);
		    if($bot->sendMessage($in->from->id, 'Укажите регион для которого хотели бы получать новости:', 'markdown', false, null, $bot->replyKeyboardMarkup($keyboard, true, true))){
		    	
		    }
			break;
		default:
			$bot->sendMessage($in->from->id, "Команда не распознана, проверьте ее актуальность нажав */* и повторите.", 'markdown');
			break;


Возможно есть у кого-то бот с такими "возможностями"? Сам класс бота отсюда тык
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
Использовать состояние.
Например: пользователь присылает сообщение /settings, прежде чем отправить ему inline клавиатуру, в БД записать состояние settings. Далее делать проверку состояния перед тем, как делать дальнейшую обработку.
Если у пользователя состояние settings, то выполнять этот кусок кода, иначе - по общему сценарию.
И в /cancel сделать обнуление состояния само собой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы