@timka228

Как сделать цепочку для бота ВК на Python?

Есть бот Вконтакте на python. Сейчас он умеет только отвечать на сообщения. У него такая структура:
while True:
    try:
        messages = vk.method("messages.getConversations", {
            "offset": 0,
            "count": 20,
            "filter": "unanswered"
        })
        if messages["count"] >= 1:
            id = messages["items"][0]["last_message"]["from_id"]
            body = messages["items"][0]["last_message"]["text"]

            if body.lower() == "привет":
                vk.method(
                        "messages.send", {
                            "peer_id": id,
                            "message":
                            "Привет!",   
                            "random_id": random.randint(1, 2147483647)
                        })
            elif body.lower() == "пока":
                vk.method(
                        "messages.send", {
                            "peer_id": id,
                            "message":
                            "Пока",   
                            "random_id": random.randint(1, 2147483647)
                        })
            else:
                vk.method(
                        "messages.send", {
                            "peer_id": id,
                            "message":
                            "Не понял",   
                            "random_id": random.randint(1, 2147483647)
                        })

А я хочу сделать цепочки сообщений. Т.е. чтобы с ботом можно было вести подобный диалог:

Юзер: Заполнить анкету
Бот: Как вас зовут?
Юзер: Алексей
Бот: Сколько вам лет?
Юзер: 18
Бот: Спасибо за ответы.

А ответы будут записываться в определенный файл, но это я сам смогу сделать.
Как это реализовать? У меня мыслей особо нет. Прошу помочь, пожалуйста.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@FrCl
Например, создать простенький класс User, в котором хранить текущее состояние беседы, и при получении сообщения смотреть по id пользователя, был ли с ним уже разговор, и в каком он сейчас состоянии.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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