You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Telegram Bot的editMessageMedia接口正确上传本地文件?

问题

调用Telegram Bot API的editMessageText接口编辑消息文本时,以下curl命令可正常运行:

curl "https://api.telegram.org/bot123/editMessageText?chat_id=-123123&message_id=123123123&text=BLAH"

但使用editMessageMedia接口替换消息附件时,执行以下命令报错:

curl -d media='{"type": "document", "media": "@/home/user/file.mp3"}' "https://api.telegram.org/bot123/editMessageMedia?chat_id=-123123&message_id=123123124"

错误返回:

{"ok":false,"error_code":400,"description":"Bad Request: invalid file HTTP URL specified: URL host is empty"}

如何正确附加本地文件?


解决方案

要通过editMessageMedia上传本地文件,不能用-d参数(该参数仅适用于普通键值对表单,无法处理文件上传),必须采用multipart/form-data格式提交请求,具体步骤如下:

  1. 在media的JSON对象中,将media字段设为attach://<占位符名称>,比如attach://file
  2. 使用-F参数分别提交media字段和本地文件,文件参数名要和占位符名称完全匹配

正确的curl命令示例:

curl -F media='{"type": "document", "media": "attach://file"}' -F file=@/home/user/file.mp3 "https://api.telegram.org/bot123/editMessageMedia?chat_id=-123123&message_id=123123124"

关键说明

  • Telegram Bot API要求上传本地媒体文件时,必须使用multipart/form-data编码
  • attach://<name>是用来关联媒体元数据和实际文件的占位符,<name>必须和后面-F指定的文件参数名一致
  • 确保目标消息支持媒体编辑(比如原消息本身包含媒体内容),且bot拥有对应的操作权限

内容的提问来源于stack exchange,提问作者vv0iadyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:45:29