首页 > 解决方案 > 在 Telegram Bot API 中从 DigitalOcean Spaces 发送照片时出现 Telegram 错误 BadRequest

问题描述

我的电报机器人遇到了从 DigitalOcean Spaces CDN 发送图片的问题。这里最令人沮丧的部分是大多数图片都没有任何错误发送,但是一些特定的图片导致来自 Telegram Bot API 的 BadRequest 400 错误。

这些图像在格式和元数据方面完全相同,但由于某种原因 Telegram 拒绝加载其中的一些(即使我将 URL 发送到“损坏的”图像,Telegram 也不会显示预览)。

这里最糟糕的部分是,当我将 .cdn 子域添加到 URL 时,一些“损坏”的图片被接受,反之亦然——如果我删除它,一些带有 .cdn 子域的“损坏”图片将被接受。

对于解决此问题的任何提示,我将不胜感激

标签: telegramdigital-oceantelegram-bot

解决方案


事实证明,Telegram 缓存了来自照片 URL 的响应(成功和不成功)。因此,如果由于某种原因其中一个 URL 返回非 200 响应,则此响应将被缓存,并且所有后续通过同一 URL 发送此图像的重试都将失败。

此答案包含有关如何更新缓存的信息。


推荐阅读