如何在我的数据库中存储电报机器人用户的会话

2023-12-02

我想编写一个电报机器人,因此当我要接收来自用户的消息时,我应该知道他/她发送给我的最后一条消息以及他/她位于哪个步骤。所以我应该存储用户的会话(我在搜索时理解了这一点),但我不知道我到底应该做什么?

我知道我需要在数据库中存储 UserId、ChatId 的表,但我不知道这些:

  1. 如何为步骤创建根并将它们存储在数据库中(我的意思是如何了解用户现在所在的位置)

  2. 我还需要将哪些列存储为会话?

  3. 我应该在数据库中存储多少条消息?每条消息都需要一行吗?


如果您只需将会话存储在数据库中,则不需要存储消息。也许您可能还想存储消息,但它不一定相关。

假设您的机器人中有一个“首选项”菜单,用户可以在其中编写输入。你询问姓名、年龄、性别等。 您如何知道用户何时写入有关姓名或性别等的输入?

您将会话保存在数据库中。当机器人收到消息时,您检查用户所在的会话以运行正确的功能。

一个简单的解决方案可能是 SQL 数据库。 主键列是电报用户 ID(如果要在私人聊天和群聊中同时使用,您还可以添加聊天 ID 列)和“会话”列 TEXT(用于记录用户步骤)。默认情况下,会话列可以为 NULL。如果机器人需要性别(因为用户发出了 /gender 命令),您可以用“性别”一词更新“会话”列,这样当消息到达时您就知道如何处理它,检查该用户 ID 的性别列并作为一旦运行了正确的函数,您就会再次将“会话”列更新为 NULL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在我的数据库中存储电报机器人用户的会话 的相关文章

  • OnPostAuthenticateRequest 中的 HttpContext.Current.Session 为 null

    这是一个n00b问题 也许你可以帮忙 当我在Application OnPostAuthenticateRequest事件 我无法查看Session since HttpContext Current Session一片空白 这是空的原因吗
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • 从自定义设置会话文件夹中删除旧会话文件?

    使用 PHP 如果我设置自定义会话文件夹来存储会话文件 我必须做什么才能确保旧会话文件最终被删除 有没有办法让 Apache 或 PHP 为我处理这个问题 或者我需要设置一些东西来自己清理这个文件夹 非常感谢有关此主题的任何信息 我目前正在
  • 在 Laravel 中获取身份验证用户 ID

    如果用户登录 Laravel 5 1 我们可以访问用户 ID Auth user gt id 在我以前的应用程序 不是 laravel 中 当用户登录时 我正在为 userid 注册一个会话 我正在检查 SESSION user id 是否
  • 每次使用会话来获取/设置对象属性

    我尝试搜索这个 但我什至不知道如何用它来搜索 我试图做的是有一个类 每次我访问它来更改它时 我实际上都是从会话中获取和设置值 这是我正在尝试做的事情 到目前为止我所做的事情 public class example public int p
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 用户可以更改 PHP 中 $_SESSION 的值吗?

    这是我的想法 我想知道是否可能 将信息存储在 PHP 的 SESSION 变量中有多安全 在 SESSION 变量中存储变量有两个潜在的 不安全 风险 另一个答案所描述的第一个称为 会话固定 这里的想法是 由于会话 ID 存储在 cooki
  • 如何终止会话或会话 ID (ASP.NET/C#)

    当用户单击注销按钮时 如何销毁会话 会话 名称 我正在 MSDN 上查看 ASP NET API Reference 它似乎没有太多信息 看来还是比较有限的 但我找不到 ASP NET 类等的任何其他页面 我努力了 Session Aban
  • Joomla getUser() 不显示更新的用户数据

    下面的代码允许我在用户的 Joomla 个人资料的个人资料页面中显示用户名 鉴于我已经覆盖了模板以获得我想要的外观和感觉 user JFactory getUser if user gt guest echo You are logged
  • IIS / .Net 只允许对给定用户会话进行单个并发响应

    这是我的问题 我们有一个 Net 4 5 Web 表单应用程序 由于服务器端的大量数据访问和操作 应用程序中的某些页面需要很长时间才能加载 如果用户在页面完成加载之前关闭浏览器选项卡 然后打开新选项卡 则新选项卡中对应用程序的任何请求都将挂
  • 如何在 ASP.NET MVC 中处理会话数据

    假设我想存储一个名为language id在会议中 我想我也许可以做如下的事情 public class CountryController Controller WebMethod EnableSession true AcceptVer
  • 终止用户会话

    我有 3 个标签 主页 选项卡 1 选项卡 2 当用户启动应用程序时 它会定向到 主页 选项卡 我使用以下命令创建一个新会话HttpSession session request getSession 当用户浏览到其他选项卡时 我使用以下方
  • 注销不会在 FOSUserBundle 中正确销毁/清除会话

    我遇到了一些问题 不知道为什么 当我从由 FOSUserBundle 处理的应用程序注销时 因为当前会话永远不会被破坏 甚至不清楚当我重新登录时会导致问题 因为我在会话上存储了一些数据 这就是我的security yml好像 securit
  • CodeIgniter 3.1.2 中重定向后会话数据丢失

    我有一个 CodeIgniter 应用程序仍在开发中 但我意识到当我登录并在会话中设置用户数据时 它会被设置但在重定向后消失 因此 重定向后我无法访问会话数据 这是我的登录脚本 public function login if empty
  • 如何将python输出发送到电报频道而不是组和gmail电子邮件组

    你好 我有一个 python 程序 每隔一小时生成一次结果 结果可以是任何结果 该程序将在本地计算机或虚拟专用网络中运行 我有两个要求 1 自动将此Python生成的结果发送到一个电报组 组名称 ourworld 由我创建 无需用户干预 我
  • PHP 会话未保存在内存缓存中

    使用 Amazon Linux 在 AWS 上运行使用 php 5 4 的应用程序 PHP 版本是 PHP 5 4 28 从AWS存储库安装的memcache lib是php54 pecl memcache 3 0 8 1 11 amzn1
  • 浏览器关闭后从数据库中删除

    我正在开发一个电子商务应用程序 但问题是 当用户将产品添加到购物车并在订购前关闭浏览器时 购物车会带走所有产品 所有购物车项目都保存在表中 如果用户关闭浏览器而不订购 我只想刷新购物车 您可以使用 Javascript 事件捕获浏览器关闭并
  • 重定向后丢失会话变量

    用户填写用户名和密码 如果正确 页面会加载一些信息 例如user id到会话变量 该脚本制作了一个header Location 重定向 不知何故 下一页无法识别会话 怎么会 重定向到同一个域 并且所有页面都有session start 我
  • 如何向会话表添加自定义字段

    我目前正在使用Symfony 2 1 8和内置的PdoSessionHandler 我想添加一个user id会话表中的字段用于标识会话属于哪个 登录 用户 我的想法是 我可以强制用户重新登录以破坏他的会话 就我而言 如果更新用户的权限 就
  • 如何在 SQL Server 会话中设置自动提交?

    如何在 SQL Server 会话中设置自动提交 您可以通过将implicit transactions设置为OFF来打开自动提交 SET IMPLICIT TRANSACTIONS OFF 当设置为ON时 返回隐式事务模式 在隐式事务模式

随机推荐