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

使用Telegram Bot API POST方法上传群组媒体遇阻:InputMediaDocument的Multipart文件上传疑问

解决Telegram Bot API通过multipart上传群组媒体(InputMediaDocument)的问题

我来帮你把这几个关键点讲清楚,都是实际调用API时踩过的坑:

1. 先搞懂attach://<file_attach_name>里的<file_attach_name>是什么

这个<file_attach_name>就是你在multipart/form-data请求里,给要上传的Blob文件指定的自定义字段名。简单说就是给你的Blob起个“代号”,让Telegram API知道:你在InputMediaDocument的media参数里写的这个字符串,对应请求里哪个上传的文件。

比如你给上传的文档Blob指定字段名叫my_uploaded_doc,那media参数就填attach://my_uploaded_doc,Telegram会自动把这个引用和请求里的Blob关联起来。

2. 完整的multipart上传流程

这里以调用sendMediaGroup接口(群组媒体上传常用这个)为例,一步步来:

步骤1:构造请求的FormData对象

你不能直接把Blob塞进JSON里,必须通过multipart/form-data的形式分开上传:

  • 第一部分:把包含InputMediaDocument的media数组转成JSON字符串,作为FormData的一个字段
  • 第二部分:把你的Blob文件添加到FormData里,字段名要和attach://后面的名字完全匹配

步骤2:正确填写InputMediaDocument的参数

举个具体的例子(用JavaScript的Fetch API):

// 假设你已经拿到了文档的Blob和缩略图Blob
const docBlob = ...; // 你的文档Blob数据
const thumbBlob = ...; // 你的缩略图Blob数据

// 1. 构造FormData
const formData = new FormData();

// 2. 构造media数组(sendMediaGroup要求传数组)
const mediaItems = [
  {
    type: 'document', // 固定为'document'
    media: 'attach://user_doc', // 这里的user_doc就是<file_attach_name>
    thumb: 'attach://doc_thumb', // 缩略图同理,用attach://引用
    caption: '这是上传的文档' // 可选的标题
  }
];
// 把media数组转成JSON字符串,添加到FormData
formData.append('media', JSON.stringify(mediaItems));

// 3. 添加实际的Blob文件,字段名要和attach://后面的一致
formData.append('user_doc', docBlob, '我的文档.pdf'); // 第三个参数是显示的文件名(可选)
formData.append('doc_thumb', thumbBlob, '缩略图.jpg');

// 4. 发送POST请求到Telegram API
fetch('https://api.telegram.org/bot你的BotToken/sendMediaGroup?chat_id=你的群组ID', {
  method: 'POST',
  body: formData
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));

3. 几个容易踩的坑

  • <file_attach_name>只要在同一个请求里唯一就行,不需要和实际文件名一致,只是个标识
  • 如果不需要缩略图,直接去掉thumb参数即可,不用传空值
  • 必须用sendMediaGroup接口上传多个媒体,单文件也可以用这个;如果是单文档也可以用sendDocument,但InputMediaDocument的引用规则是一样的
  • 不要尝试把Blob转成base64塞进media参数里,Telegram对base64的支持有限,multipart是官方推荐的上传方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:43:15