如何在电报机器人中管理更多用户?

时间:2017-09-07 15:03:14

标签: python variables bots telegram telepot

我用python做了一个电报机器人,他发送了一条像

这样的消息
if message == '/start':
    bot.sendMessage(chat_id, "Insert your name:")
    a = 'name'
if a == 'name' and message != '/start'
    name_user = message
    bot.sendMessage(chat_id, "Insert your birthday:")
    a = 'birth'
    and so on for other information...

问题出现的时候,两个用户同时使用我的机器人,因为第一个用户改变了一个' a'所以第二次从出生开始,而不是名字,有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

使用用户ID存储。

a[chat_id] = name

答案 1 :(得分:0)

您需要为此目的使用数据库。有一个名为State的字段,其主要字段为用户的ChatID。 在用户的每个响应之后,从db。

检查该用户的状态

Sean的回答也是正确的,但是如果您的程序由于某种原因重新启动,那么您将失去用户状态。

答案 2 :(得分:0)

您应该考虑使用sqlite3创建数据库。在数据库中创建一个与每个用户相对应的表(例如,表:db(str(chat.id)))。并在每个表中创建列,您可以在其中放置用户信息(还包括chat.id)。