телеграмма — использование сеанса в программе

Telegram messenger позволяет программисту создавать свой собственный бот.
у моего бота есть клавиатура пользователи могут выбрать каждый ключ, и бот покажет правильный ответ.
в моем примере, когда пользователь нажимает «mobile» или «/ mobile», ответом бота становится новая клавиатура: «sony», «Nokia», «Lg». и нажав nokia, бот покажет правильный ответ
Также пользователь может напрямую напечатать «Nokia» и ответить на него роботу.

моя проблема заключается в:
Есть ли зачем заставлять пользователей выбирать nokia, «только» после пресса моб?
другое слово, когда пользователь вводит nokia напрямую, бот показывает ему: «сначала нужно выбрать мобильный»

$data       = json_decode(file_get_contents('php://input'), true);

$client     = new Zelenin\Telegram\Bot\Api($token);

$chatid     = $data['message']['chat']['id'];
$text       = $data['message']['text'];
$messageid  = $data['message']['message_id'];


if($text == "/mobile" || "mobile"){
$params     = array('chat_id' => $chatid, 'action' => 'typing');
$response   = $client -> sendChatAction($params);
//keyboard
$keyboard = array("sony \xF0\x9F\x93\x9E","nokia \xF0\x9F\x8E\xA5","LG \xF0\x9F\x92\xB0");
$start_keys = array('keyboard'=>array($keyboard));
$encodedMarkup = json_encode($start_keys);
$message = " \xF0\x9F\x93\x8C please press correct key ...";
$content = array('chat_id' => $chatid,'reply_markup' => $encodedMarkup,'text' => $message);
$response   = $client -> sendMessage($content);
$response   = $client -> forwardMessage(array('chat_id' => $agroup,
'message_id' => $messageid, 'from_chat_id' => $chatid));
} else {
$params     = array('chat_id' => $chatid, 'action' => 'typing');
$response   = $client -> sendChatAction($params);
$message = " \xF0\x9F\x93\x8C please press ...";
$response   = $client -> sendMessage($content);
}
?>

4

Решение

Вы можете добавить поле с именем menu в таблицу users с установленным по умолчанию значением SelectMobile.
Когда пользователь нажимает кнопку, отличную от мобильной, установите флажок, если это был SelectMobile, попросите его сделать это. Когда пользователь нажмет на мобильный, обновите это поле до SelectBrand. Опять же, если пользователь отправляет товары, отличные от торговых марок, скажите ему, что он должен отправить указанную торговую марку.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]