Telegram 机器人等待用户回复

2023-12-08

下面的代码是针对电报机器人这基本上需要一个人username and password并验证它以提供他的平均支出。

我们看到的问题是机器人等待用户发送他的用户名和密码10 sec要么浪费时间(要么)没有给予足够的时间。我怎样才能编程,让机器人等待用户消息,然后执行下一行(等到触发)

def highest(intent,chatid,text):
    seq=["What is your Username ?","Password?"]
    send_message(seq[0],chatid)
    time.sleep(6)
    name,chatid = reply_function()
    print name
    send_message(seq[1],chatid)
    time.sleep(6)
    pw,chatid = reply_function()
    print pw
    try:
        flag = obj.validate(name,pw)
        if flag=="Verified":
            for i in obj.avg_transactions():
                send_message(i,chatid)
        else:
            send_message("try again",chatid)
            highest(intent,chatid,text)
     except:
        send_message("try again",chatid)
        highest(intent,chatid,text)

你应该使用强制回复标记您的请求并检查用户的回复 - 当回复包含时Username in reply_to_message接收到的字段Message那么您应该发送密码等请求。


Example (伪代码):

// Asking user for username/password
Bot.SendChatAction(update.Message.Chat.Id, ChatAction.Typing);
Bot.SendTextMessage(update.Message.Chat.Id, "Type your username, please");

// Checking incoming messages for replies
if (update.Message.ReplyToMessage.Text.Contains("your username"))
{
    if (!IsValidUsername(update.Message.ReplyToMessage.Text)) return;
    SaveUsernameToDb(update.Message.Chat.Id, update.Message.ReplyToMessage.Text);
    Bot.SendChatAction(update.Message.Chat.Id, ChatAction.Typing);
    Bot.SendTextMessage(update.Message.Chat.Id, "Username has been successfully saved!");
}
else
{
    ...
}

顺便说一句,在纯文本聊天中询问用户名/密码等私人数据是非常不安全且非常糟糕的做法。

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

Telegram 机器人等待用户回复 的相关文章

  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 如何返回 cost, grad 作为 scipy 的 fmin_cg 函数的元组

    我怎样才能使 scipy 的fmin cg使用一个返回的函数cost and gradient作为元组 问题是有f对于成本和fprime对于梯度 我可能必须执行两次操作 非常昂贵 grad and cost被计算 此外 在它们之间共享变量可
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 给定一个排序数组,就地删除重复项,使每个元素仅出现一次并返回新长度

    完整的问题 我开始在线学习 python 但对这个标记为简单的问题有疑问 给定一个排序数组 就地删除重复项 使得每个 元素只出现一次并返回新的长度 不分配 另一个数组的额外空间 您必须通过修改输入来完成此操作 数组就地 具有 O 1 额外内
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 在Raspberry pi上升级skimage版本

    我已经使用 Raspberry Pi 2 上的 synaptic 包管理器安装了 python 包 然而 skimage 模块版本 0 6 是 synaptic 中最新的可用版本 有人可以指导我如何将其升级到0 11 因为旧版本中缺少某些功
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • 如何获取pandas中groupby对象中的组数?

    我想知道有多少个独特的组需要执行计算 给定一个名为 groupby 的对象dfgroup 我们如何找到组的数量 简单 快速 Pandaic ngroups 较新版本的 groupby API pandas gt 0 23 提供了此 未记录的
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar
  • 定义在文本小部件中双击时选择哪些字符

    在 Windows 上 双击文本小部件中的单词也将选择连接的标点符号 有什么方法可以定义您想要选择的角色吗 tcl wordchars该变量的值是一个正则表达式 可以设置它来控制什么被视为 单词 字符 例如 通过双击 Tk 中的文本来选择单

随机推荐

  • 使用欧氏距离在 numpy 数组列表中查找 numpy 数组的最近邻居

    我有一个 n 维向量 我想使用欧几里得距离在 n 维向量列表中找到它的 k 个最近邻 我编写了以下代码 k 10 它可以工作 但运行速度太慢 我想知道是否有更优化的解决方案 def nearest neighbors value array
  • MVVM 将 RelayCommand CanExecute 绑定到属性?

    我有一个计时器和三个按钮来控制它 开始 停止和暂停 每个按钮都绑定到一个 RelayCommand 我有一个 TimerState 类型的属性enum TimerState 这对于设置各种 GUI 元素很有用 有没有办法以某种方式将 Rel
  • 根据空格或“双引号字符串”将字符串解析为数组

    我试图获取用户输入字符串并解析为一个名为 char entire line 100 的数组 其中每个单词都放在数组的不同索引处 但如果字符串的一部分用引号封装 则应将其放在单个索引中 所以如果我有 char buffer 1024 0 fg
  • 无法获取托管类型的地址、获取其大小或声明指向托管类型(“类型名称”)的指针

    如果我的结构中有一个或多个 System String 此错误将停止编译还有其他方式存储字符串吗 我尝试过这样的事情 private long B ID private byte C Name private byte C Address
  • 互斥体未释放

    我的 c WinForm 解决方案包含多个项目 其中包括包含 frmAdmin 的管理项目和包含 frmUser 的用户项目 第三个项目包含 frmTimer 它有一个定期启动 frmUser 的计时器 我希望 frmTimer 在 frm
  • 仅使用生产证书时无法注册推送通知

    使用开发证书时 推送通知工作正常 当我在临时发行版中切换到生产证书时 应用程序无法注册推送通知 在 UIApplicationDelegate 中 两者都没有didRegisterForRemoteNotificationsWithDevi
  • Java Swing,尝试用图像图标复选框替换 JTable 中的布尔复选框

    所以我有一个带有复选框的 JTable 我希望复选框在 选中 时包含一个图像 在 未选中 时包含另一图像 即显示图像而不是选中或未选中的框 有没有办法做到这一点 我尝试过使用 TableCellRenderer 返回带有 ImageIcon
  • 自反传递闭包的定义

    许多谓词本质上使用某种形式的传递闭包 只是发现终止也必须得到解决 为什么不一劳永逸地解决这个问题closure0 3 meta predicate closure0 2 meta predicate closure 2 meta predi
  • 第 n 个范围的 CSS 选择器?

    如何调整下面的 CSS 选择器 myTableRow td nth child background color FFFFCC 所以它适用于td列2 4 table tr class myTableRow td column 1 td td
  • 有没有办法将 Linux 共享库加载到特定的内存位置?

    我有一个 Linux 应用程序 它在运行时加载非常小的 一些小函数 共享库 由于各种重要原因 我需要将共享库加载到特定的虚拟内存范围 然而 dlopen 没有提供任何方法 我可以看到 来告诉它或提示它 将其加载的内容放在哪里 有没有办法告诉
  • 导入错误:没有名为“app”的模块

    我正在开发一个具有以下树结构的项目 Project app main py svg to png py init py tests init py unittests basic test py init py 我正在使用以下命令将应用程序
  • Google App Engine - 数据存储实体的 ID 是否会为负数?

    数据存储实体的 ID 是否会为负数 或者它们保证是正数吗 我找不到明确说明这一点的文档 但我从未见过负面的文档 这docs确实 随着新实体的创建 这一数字通常会增加 但不应严格依赖它们 因为您可能会得到稍微乱序的 id 例如 10 11 1
  • 用 mod 重写删除尾部斜杠?

    这与我之前的问题有关 可以查看here 我希望能够删除 URL 中的尾部斜杠 这样它就不会弄乱我网站的某些区域 htaccess 代码在这里 s File Exists RewriteCond REQUEST FILENAME s OR l
  • Rails 3 中不带尾部斜杠的重定向到规范路线

    在 Rails 3 上 我尝试从没有尾部斜杠的 URL 重定向到有斜杠的规范 URL match test to gt redirect test 但是 上面的路由同时匹配 test 和 test 导致重定向循环 如何使其仅匹配不带斜杠的版
  • 如何在C++中生成随机数?

    我正在尝试用骰子制作游戏 并且需要其中包含随机数 以模拟骰子的侧面 我知道如何使其在 1 到 6 之间 使用 include
  • isolatedStorage:删除卸载程序中的首选项?

    我们的应用程序将用户首选项保存在独立存储中 然而 事实证明 从我们的卸载程序中删除这些文件是很棘手的 我可以枚举隔离存储中的所有文件 使用 MSDN 示例代码 找到与我们的强名称密钥相关的文件 并尝试删除 删除它们 不幸的是 这就是一切崩溃
  • 如何运行后台线程定期清理列表中的某些元素?

    我目前正在实施缓存 我已经完成了基本的实现 如下所示 我想要做的是运行一个线程来删除满足某些条件的条目 class Cache int timeLimit 10 how long each entry needs to be kept af
  • 为什么在 clojure 中 will (seq #{3 1 22 44}) 会输出 (1 3 44 22) ?

    它是如何工作的 序列 3 1 22 44 为什么顺序会像 1 3 44 22 因为根据定义 集合数据结构是无序的 http en wikipedia org wiki Set data struct 更准确地说 Clojure 的内置集 b
  • 如何在事件侦听器中将元素作为参数传递

    我有一个程序 其中有大量可重用元素 所有这些元素都需要事件侦听器 因此 我需要一种从侦听器获取元素的方法 这是我想在代码中执行的操作 document querySelectorAll class forEach function el e
  • Telegram 机器人等待用户回复

    下面的代码是针对电报机器人这基本上需要一个人username and password并验证它以提供他的平均支出 我们看到的问题是机器人等待用户发送他的用户名和密码10 sec要么浪费时间 要么 没有给予足够的时间 我怎样才能编程 让机器人