@NooBick

Как сделать чтобы у каждого человека был свой диалог?

Например: первый человек отвечает на вопрос, у него уже вопрос 5\10. Тогда, если второй человек ему напишет, то у него тоже будет вопрос 5\10. И второй человек может ответить за первого. Как в телеграмм это реализовать? Чтобы у каждого был свой диалог с ботом, а не одинаковый.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Создать словарь и записывать у какого человека какой вопрос?
https://pythonworld.ru/tipy-dannyx-v-python/slovar...
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
Ну вот смотри, совсем на пальцах самый простой тип взаимодействия. Допустим, есть состояние диалога:

неопределённое или 0 - пользователь ничего не писал, но нажал /start - мы отвечаем кнопкой и переводим в состояние 1.
1 - пользователь нажал на кнопку - мы спрашиваем телефон и переводим в состояние 2.
2 - пользователь ввёл телефон - мы делаем что надо и возвращаем в состояние 0.

Так что заводим словарь:

user_states = dict()

Далее по каждому сообщению мы делаем:

try:
  user_states[message.from_user.id]
except KeyError:
  user_states[message.from_user.id] = 0

if user_states[message.from_user.id] == 0:
  bot.send_message (посылаем кнопку)
  user_states[message.from_user.id] = 1
elif user_states[message.from_user.id] == 1:
  bot.send_message (спрашиваем телефон)
  user_states[message.from_user.id] = 2
elif user_states[message.from_user.id] == 2:
  bot.send_message (как прикажете, господин)
  do_somethine_awesome
  user_states[message.from_user.id] = 0


Если непонятно, как это превратить в рабочий код, то тебе явно рано писать ботов, подучи сначала язык.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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