keyboard - 带有ReplyKeboardMarkup的Telegram bot中的SendMessage在更新后停止工作
问题描述
我有一个奇怪的问题。我有一个应用程序(机器人)将消息发送回用户。消息通常(但可能没有)配备键盘(reply_markup=ReplyKeboardMarkup),用户可以在该键盘上选择下一个选项。该应用程序基于 Ubuntu 14.04 > Tomcat 5 > Coldfusion 16 > Telegram bot API 4。一切都很顺利(现在仍然如此!)。
由于我想升级我的老服务器,我一直在为服务器(Ubuntu 18.04 LTS 或 20.04 LTS)、Coldfusion(16、18 以及 Lucee、Openbluedragon)的许多配方苦苦挣扎。看来 Telegram bot API 5 已经上线,我无法选择。
问题是带有reply_markup 的SendMessage 会导致500 错误,而没有键盘的相同消息会被接受并顺利发送。键盘已经刻骨铭心,例如:
mykeyboard='{"keyboard":[["A","B"]],"one_time_keyboard":"true"} '
我在 HTTP 中尝试过 GET 或 POST 方法。我可以理解从 API 4 迁移到 API 5 的一些区别,但是同样的 API 5 继续在生产服务器上与我的应用程序一起工作......头痛。任何人都可以告诉我一种理解的方法吗?谢谢
解决方案
在漫长的谜题之后,这就是答案。似乎在 API 5 中,在键盘的定义中,
不再支持“one_time_keyboard”子句。把它逗弄一下: mykeyboard='{"keyboard":[["A","B"]]} '
它会再次运行
:-(
推荐阅读
- oracle - 用于开发和生产的存储过程中的不同模式名称
- java - Spring gateway(webflux) - oauth 安全 - 问题
- flutter - Flutter Provider 重新初始化模型
- memory-management - 在 vm_fault() 中预取,Linux 驱动程序
- c# - 改变重力方向
- python - 在 keras 自定义损失函数中获取训练数据形状
- csv - 将 CSV 数据复制到包含可为空列的 Azure SQL 数据库
- python - 汇总列列表
- python - 绘制平滑 matplotlib 和 seaborn
- sql-server - 在大量数据库调用之间进行选择,或通过在单个搜索中聚合信息来减少调用次数