Доброго времени суток, вот появилась проблема! Хочу сделать опросник в виде чат-бота вк, но не могу сделать так, тобы после вывода вопроса в цикле, бот ожидал сообщение от пользователя.
def sort_hat():
i = 1
while i < 14:
response = vk.method('messages.get', values)
sort_question(i) # выдает по очереди вопросы
# ожидание ответа от пользователя
time.sleep(1)
i += 1
Создавать сессию каждому пользователю по его айди вк, записывать в базу (мускул, монго, редис, да хоть в файл пиши). Записывать стадию, на которой находится пользователь в виде числового идентификатора.
Обработчик что-то по типу:
Свитч (стадия)
1: как дела?
2: зачем ты здесь?
maclinchy, нужно где-то хранить статус пользователя, верно? Нам ведь нужно знать на какой вопрос он отвечает в данный момент? Ну так вот и храните эту информацию в сессии в бд.
Написал пользователь, мы проверили в базе, если его айди нет в базе - заводим новую сессию, задаем первый вопрос.
Пользователь пишет ещё раз, в этот раз мы берём из базы информацию, что данный пользователь отвечает на вопрос с id = 1. Обрабатываем его ответ на наш вопрос, записываем в базу что мы задаем вопрос номер 2 и посылаем вопрос пользователю. И так до бесконечности.
Сережа Ахен, вы уже описываете сам алгоритм. Мой вопрос примитивнее, как обработать его ответ? Нашел только как обработать его последнее сообщение, но это не подходит.
maclinchy, посредством callback api или longpoll получаем сообщения в реальном времени и обрабатываем как указано в документации к этим методам получения событий.