如何在电报机器人中管理更多用户?
How to manage more users in a telegram bot?
我和 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...
当两个用户同时使用我的 bot 时出现问题,因为第一个用户更改 'a' 所以第二个用户从出生而不是名字开始,有人可以帮我吗?
使用用户 ID 存储。
a[chat_id] = name
您需要为此目的使用数据库。有一个名为 State
的字段,其主要字段是用户的 ChatID。
在您的用户每次回复后,从 db 检查该用户的状态。
Sean 的回答也是正确的,但是如果您的程序由于某种原因重新启动,这样您将丢失用户状态。
你应该考虑一个数据库,使用sqlite3创建它。在数据库中创建一个对应于每个用户的 table(例如 table: db(str(chat.id)))。并在每个 table 中创建列,您可以在其中放置用户的信息(也包括 chat.id)。
我和 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...
当两个用户同时使用我的 bot 时出现问题,因为第一个用户更改 'a' 所以第二个用户从出生而不是名字开始,有人可以帮我吗?
使用用户 ID 存储。
a[chat_id] = name
您需要为此目的使用数据库。有一个名为 State
的字段,其主要字段是用户的 ChatID。
在您的用户每次回复后,从 db 检查该用户的状态。
Sean 的回答也是正确的,但是如果您的程序由于某种原因重新启动,这样您将丢失用户状态。
你应该考虑一个数据库,使用sqlite3创建它。在数据库中创建一个对应于每个用户的 table(例如 table: db(str(chat.id)))。并在每个 table 中创建列,您可以在其中放置用户的信息(也包括 chat.id)。