@undisman

Как осуществить некое подобие сессии с пользователем при использовании Телеграм бота?

Привет всем! Товарищи, ооочень важный вопрос для понимания в написании Телеграм бота. Пишу на PHP. И вопрос - как осуществить некое подобие сессии с пользователем? Т.е. я спокойно определяю пользователя по chat-id. Но совсем не понятно как хранить состояние системы (историю) общения с пользователем. Предположим, что у меня есть 3 вопроса, которые я хочу задачать юзеру: как ваше имя, ваш возраст и ваш город. Бот отсылает юзеру "Как Вас зовут?", юзер вбивает свое имя, но как мне понять, что это ответ на мой вопрос про возраст, а не на какой-то другой? Насколько я понимаю система не помнит, что бот писал (какой вопрос задавал). Заранее огромное спасибо!
  • Вопрос задан
  • 2156 просмотров
Пригласить эксперта
Ответы на вопрос 3
T_y_l_e_r
@T_y_l_e_r
Там все просто
Создаете табличку и храните историю по id пользователя, а точнее последний заданный вопрос и ключ true, false - отвечен, не отвечен
Это как вариант
Ответ написан
@djnightart
Я делаю так:
При нажатии /start создаем чистый файл с именем (chat_id) или если такой уже есть, очищаем его!
Пользователю задают вопрос: Ваше имя?
Пишем имя пользователя в файл.
Затем Ваш город? - ДОписываем город в файл через знак ^ например!
и так по порядку. А чтобы узнать где находится пользователь, используем простейшую конструкцию:
$data = explode("^", file_get_cintents($chat_id) );
if($data[0]){
    if($data[1]){
        if($data[2]){
         // исполняем код, если 3 значение есть
        }else{
         // исполняем код, если 2 значение есть
        }
   }else{
   // исполняем код, если 1 значение есть
   }
}else{
// Файл пустой, начит пишем в него имя!
}


Все на самом деле очень просто!
Ответ написан
Ваш ответ на вопрос

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

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