如何正确使用Google Chat API上传媒体?遇文件名参数错误求解
Google Chat API媒体上传400错误解决方案
问题根源
你碰到的400错误是因为form-data参数格式不满足API要求——必须通过指定的metadata字段传递文件名,而非直接在文件字段里设置。
正确的Postman配置流程
修正请求URL:将路径中的
{parent=spaces/*}替换为实际的Google Chat空间ID,例如:https://chat.googleapis.com/upload/v1/spaces/AAAA123XYZ/attachments:upload空间ID可从Chat网页版URL中提取(格式类似
AAAA123XYZ)。设置请求头:仅保留授权头,无需手动指定
Content-Type(Postman会自动生成正确的multipart格式):- 键:
Authorization - 值:
Bearer [你的OAuth2访问令牌]
确保令牌拥有chat.attachments.create或chat.messages.create权限。
- 键:
配置form-data请求体:
- 第一组参数:
- 键:
metadata - 类型:选择
raw,格式切换为JSON - 内容:
这里的{ "attachment": { "filename": "example.png" } }filename必须和你要上传的实际文件名完全一致。
- 键:
- 第二组参数:
- 键:
file - 类型:选择
File - 选择本地要上传的目标文件。
- 键:
- 第一组参数:
关键注意点:
- 不要在
file字段的键名后附加filename参数(比如file;filename=xxx.png),API会优先读取metadata中的文件名。 - 确保上传的文件大小不超过API限制(当前为2GB)。
- 不要在
成功响应示例
请求正确发送后,会返回包含attachmentDataRef的响应,可用于后续调用:
{ "attachmentDataRef": { "resourceName": "spaces/AAAA123XYZ/attachments/abc789" } }
内容的提问来源于stack exchange,提问作者Bruno Brito
相关产品推荐
相关产品推荐

