API
文件上传
先 upload 拿 file_id,再用于 send*。
鉴权: Authorization: Bearer sbot_…
POST
Bot Token/api/v1/bots/files/upload-credentialsupload-credentials申请 S3 直传凭证
为即将上传的多媒体文件获取 S3 预签名凭证;多媒体消息第一步。可开启内容去重秒传。
- 必填:
fileName、fileSize(字节)、checksum(完整文件 64 位 SHA-256 hex) - 可选:
fileType(MIME)、metadata、reuseRequestId(建议始终传稳定幂等键)、reuseExisting(可省略)、isPublic、writeOnce - 秒传:提供有效
checksum+ 稳定reuseRequestId,并返回uploadRequired: false+ 可用的file/file_id时,应跳过 PUT 与 complete - 未命中:返回
uploadRequired: true、uploadUrl、key、headers、expiresAt;同一次逻辑上传在凭证/重试/complete 间须保持同一reuseRequestId - 持有证明:若平台已有同 checksum 对象但当前 Bot 未证明持有,响应可含
possessionRequired: true与possessionChallenge(按挑战完成后再请求)
POST
Bot Token/api/v1/bots/files/completecompleteS3 直传完成登记
客户端完成 PUT 上传后回调登记,获取后续 `sendPhoto / sendDocument` 需要的 `file_id`。若凭证阶段已秒传(`uploadRequired: false`)则无需调用本接口。
- 必填:
key、fileName、fileSize、checksum(64 位 SHA-256 hex) - 可选:
fileType、category(默认bot)、isPublic、writeOnce、reuseRequestId(与凭证阶段一致) - 返回:
file_id、url、thumbnail_url?等文件信息
GET
Bot Token/api/v1/bots/getFilegetFile获取文件信息
根据 `file_id` 拿到平台文件元数据(含临时下载 URL)。
- 必填 query:
file_id - 返回:
{ file_id, file_name, mime_type, file_size, url, thumbnail_url? }
