尝试编辑消息时Telegram Bot API出现错误:“错误请求:未找到消息”

20

我尝试编辑机器人发送的消息,这条消息大约两小时前发送,但是我收到了一个错误提示,推测这条消息已经太老不能再编辑。然后我尝试编辑稍晚发送的另一条消息,编辑成功了。但是之后我又尝试编辑一条最近发送的消息,结果又一次得到了同样的错误提示。现在看起来请求结果是随机的。

这是什么意思呢?

以下是我的POST查询的示例:

https://api.telegram.org/bot{token}/editMessageText?chat_id=12345&message_id=370&text=New text

这是最终结果:

{
  "ok": false,
  "error_code": 400,
  "description": "Bad Request: message not found"
}

你应该提供更多细节,例如示例API调用和响应。 - Alireza Mohamadi
不确定是否有效,但尝试提供message_id而不是chat_id。 - Vladimir
@Vladimir的message_id只在聊天区域内是唯一的,我认为。 - anatol
来自 Telegram 机器人支持:“通常情况下,当您的机器人未发送您试图编辑的消息时,会出现该错误。”这是我在这个问题上得到的反馈,我找不到任何其他原因会导致这种情况发生。 - Charles Okwuagwu
2
@CharlesOkwuagwu 感谢您的调查,但消息已经准确发送并且是由机器人准确发送的。而且这种情况不止发生了一次。 - anatol
显示剩余2条评论
3个回答

14

这是因为您尝试编辑的消息不是机器人发送的。

我也遇到过这个问题。在我的情况下,我正在尝试编辑一些在频道上由三个管理员发送的帖子;两个人类管理员和一个机器人。

机器人只能编辑自己的消息。

编辑时间限制仅适用于人类用户。

机器人可以随时编辑它们自己的消息。


有没有办法编辑所有管理员的所有消息? - Ebrahim Karimi
据我所知,您无法编辑其他管理员的消息。此外,人类管理员也无法编辑其他人类管理员的消息。当我尝试使用机器人删除其他管理员的消息时,这是我的问题,但我找到了一个支持此操作的API。我建议您在线搜索并查看是否有支持编辑的API。但我认为这是不可能的。 - Naser.Sadeghi

4

时间限制为48小时 source

如果消息已被删除或已过期,则会收到此错误代码。

我已经有一段时间没有使用过 Telegraph API,但我记得看到了一些不一致的行为,就像你提到的那样。 我最终不得不实现重试逻辑来解决它。

您可以首先手动尝试一下,看看是否有助于您。 我不知道他们是否解决了我过去遇到的问题,但是重试对我很有帮助。


请注意,一条消息的编辑操作有时会产生不同的结果,请在问题中说明。 - anatol
编辑消息的时间限制仅适用于普通用户,机器人不受此限制的影响。 - Ruben Bermudez

1

如果在消息中定义了 reply_markup,editMessageText 方法会抛出一个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接