Задать вопрос
@kolomiec_artiom

Flask + API VK. Создание опросного-бота. Как проверять запросы на сервер в Flask?

Добрый вечер! Решил создать опрос-бота для ВК на Python, использовал микрофреймворк flask. Код:IuEFCsmK7sU.jpg

Соответственно, каждый раз, когда идет запрос на сервер (Т.е когда пользователь шлет сообщение в личку группы) у меня вызывается функция "processing" и далее по накатанной. Но мне нужно, чтобы после того, как пользователь отправил определенный символ ('1', допустим) у меня вызывалась уже новая функция (начало опроса). В этой функции задавался бы первый вопрос, потом пользователь на него отвечал, потом задавал бы второй вопрос и т.д

Как это можно реализовать? Как запустить функцию при вводе определенного символа знаю. А как сделать так, чтобы сообщение в этой функции выводилось только тогда, когда пользователь отвечал на предыдущее?

Пример выходных данных:
Б - бот, П - пользователь

(Б): Напишите "1", чтобы начать опрос

(П): 1

(Б): Как вы относительно к stackoverflow?

(П): Положительно

(Б): Как вы относительно к python?

(П): Нормально

(Б): Спасибо за прохождение опроса!
  • Вопрос задан
  • 1114 просмотров
Подписаться Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
ну так что мешает после ввода 1 сгенерировать идентификатор сессии опроса и с ним работать ?
Ответ написан
Ahen
@Ahen
Универсальный дилетант
Мы же будем хранить результаты опроса в какой либо базе?
Там же и храните сессии пользователей, логика пррста: Проверяем есть ли пользователь с id vk в нашей базе, если нет - создаем запись, если есть проверяем id вопроса на который должен в текущий момент отвечать пользователь, записываем ответ, задаем следующий вопрос, записываем id нового вопроса пользователю.

Структура простейшая из трех столбцов - id с автоинкриментом, id vk, id вопроса.

При таком походе легко реализовать возможность вернуться к предыдущему вопросу, не потерять данные при подении питона.
Ответ написан
Комментировать
YardalGedal
@YardalGedal
yeah boy
Вам нужно использовать базу данных. Простейшая структура которая пришла в голову это две таблицы в MySQL. В первой храняться состояния, номер вопроса и идентификатор юзера, а во второй все ответы пользователей, номер вопроса, идентификатор пользователя и ответ на этот вопрос.

Можно обойтись и одной -- проверять сразу во второй базе сколько вопросов прошел пользователь, но при больших данных будут проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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