首页 > 解决方案 > 带有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 继续在生产服务器上与我的应用程序一起工作......头痛。任何人都可以告诉我一种理解的方法吗?谢谢

标签: keyboardtelegram

解决方案


在漫长的谜题之后,这就是答案。似乎在 API 5 中,在键盘的定义中,
不再支持“one_time_keyboard”子句。把它逗弄一下: mykeyboard='{"keyboard":[["A","B"]]} '

它会再次运行

:-(


推荐阅读