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

2023-12-02

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

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

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

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

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


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

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

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

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

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

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

  • SESSION 中存储的数组后面出现数字

    我正在对存储在会话变量上的数组执行 print r 由于某种未知的原因 它在数组打印后添加了一个数字 Example Array 0 gt 868 userid gt 868 1 如果我直接在函数本身中执行 print r 并且在变量存储在
  • Session_set_save_handler 未设置

    我在设置 session set save handler 时遇到问题 我将 php ini 配置为 session handler user 这个简单的测试失败了 Define custom session handler if sess
  • 会话劫持和 PHP

    让我们只考虑服务器对用户的信任 会话固定 为了避免我使用的固定session regenerate id 仅在身份验证中 login php 会话侧劫持 整个站点的 SSL 加密 我安全吗 阅读 OWASPA3 破坏的身份验证和会话管理 h
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • PDO 静默准备失败[重复]

    这个问题在这里已经有答案了 我正在尝试 PHPsession set save handler我想使用 PDO 连接来存储会话数据 我有这个函数作为写入操作的回调 function write id data logger WRITE id
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • 在 Laravel 中获取身份验证用户 ID

    如果用户登录 Laravel 5 1 我们可以访问用户 ID Auth user gt id 在我以前的应用程序 不是 laravel 中 当用户登录时 我正在为 userid 注册一个会话 我正在检查 SESSION user id 是否
  • 同一域的子页面之间的 PHP 会话

    我有一个域 domain com 其中有多个子页面 这些子页面具有不同的会话 默认情况下 并且我希望其中一些子页面共享一个会话 例如我有domain com section1 staff and domain com section2 st
  • 每次使用会话来获取/设置对象属性

    我尝试搜索这个 但我什至不知道如何用它来搜索 我试图做的是有一个类 每次我访问它来更改它时 我实际上都是从会话中获取和设置值 这是我正在尝试做的事情 到目前为止我所做的事情 public class example public int p
  • Rails 渲染 JSON - 会话丢失?

    我正在尝试对控制器进行一些 Ajax 调用 该控制器以 JSON 进行响应 if session user render json gt Some Data else render json gt You are not logged in
  • 场次抽奖

    有人能解释一下什么是会话扫彩票吗 我已附加 Laravel 框架的默认会话配置文件 问题 1 它说某些会话驱动程序必须manually扫荡他们的 存储位置 有人可以描述这个过程以及为什么会这样吗 必要的 哪些会话驱动程序需要此操作 2 为什
  • OWIN中间件可以使用http会话吗?

    我有一些为 ASP NET 和 SignalR 复制的代码 我决定将其重写为 OWIN 中间件以删除这些重复 一旦我运行它 我注意到HttpContext Current Session为空 并且我没有看到任何会话对象IOwinContex
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何让我的程序等到 JavaFX 窗口关闭后再继续?

    我有一个显示结果条形图的程序 我想等到用户关闭条形图才能继续执行下一行代码 该代码询问他们是否要为图表输入新信息 Scene scene BarGraph getBarChart primaryStage setScene scene pr
  • 为什么LocalSessionFactoryBean不实现getCurrentSession,而SessionFactory的实例却可以调用该方法?

    这是我的 Spring Bean 配置
  • SSL 和会话劫持/固定

    快问 SSL 是否完全防止会话劫持 固定 谢谢 不可以 例如 在以下情况下可能会发生劫持 被黑客入侵的 CA 根签署无效证书 该证书可用于发起中间人攻击 被黑客攻击的域名所有者电子邮件收件箱使黑客有可能购买经过域名验证的证书 错误的密钥策略
  • 如何在使用 Web 服务时获取会话对象?

    如何在使用 Web 服务时获取会话对象 服务在两个程序之间调用 如何在使用 Web 服务时获取用户会话对象 不可能使用请求对象获取会话 因为当我们谈论服务时不会有请求或响应 如果您正在与JAX WS https jax ws dev jav
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一

随机推荐