我想编写一个电报机器人,因此当我要接收来自用户的消息时,我应该知道他/她发送给我的最后一条消息以及他/她位于哪个步骤。所以我应该存储用户的会话(我在搜索时理解了这一点),但我不知道我到底应该做什么?
我知道我需要在数据库中存储 UserId、ChatId 的表,但我不知道这些:
如何为步骤创建根并将它们存储在数据库中(我的意思是如何了解用户现在所在的位置)
我还需要将哪些列存储为会话?
我应该在数据库中存储多少条消息?每条消息都需要一行吗?
如果您只需将会话存储在数据库中,则不需要存储消息。也许您可能还想存储消息,但它不一定相关。
假设您的机器人中有一个“首选项”菜单,用户可以在其中编写输入。你询问姓名、年龄、性别等。
您如何知道用户何时写入有关姓名或性别等的输入?
您将会话保存在数据库中。当机器人收到消息时,您检查用户所在的会话以运行正确的功能。
一个简单的解决方案可能是 SQL 数据库。
主键列是电报用户 ID(如果要在私人聊天和群聊中同时使用,您还可以添加聊天 ID 列)和“会话”列 TEXT(用于记录用户步骤)。默认情况下,会话列可以为 NULL。如果机器人需要性别(因为用户发出了 /gender 命令),您可以用“性别”一词更新“会话”列,这样当消息到达时您就知道如何处理它,检查该用户 ID 的性别列并作为一旦运行了正确的函数,您就会再次将“会话”列更新为 NULL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)