POST media/upload (FINALIZE)
概述¶
使用 APPEND
命令上传整个媒体文件后,则应调用 FINALIZE
命令。当(且仅当)FINALIZE
命令的响应包含 processing_info
字段时,则可能还需要使用 STATUS 命令,并在继续创建推文之前等待其返回成功。
请求¶
请求应该是 multipart/form-data
或 application/x-www-form-urlencoded
POST 格式。
注意: 此端点的域为 upload.twitter.com
响应¶
响应会在 media_id
(64 位整数)和 media_id_string
(字串)字段中分别提供媒体标识符。使用 JavaScript 在 API 响应中提供的 media_id_string
以及其他无法准确表示长整数的语言。
返回的 mediaId 有效时间仅为 expires_after_secs
秒。此时间段后,尝试在其他 API 调用中使用 mediaId 都会导致错误请求 (HTTP 4xx) 响应。
如果响应包含 processing_info
字段,则使用 STATUS
命令为 FINALIZE
操作的状态投票。异步完成方法用于媒体处理需要更多时间的情况。将来,所有的视频和动画 GIF 处理将只支持使用异步完成。如果上传会话经过 media_category 参数初始化,并且媒体类型为视频或动画 GIF,则会启用该操作。
如果响应中没有返回 processing_info
字段,则 media_id
可以在其他 API 端点中使用。
资源信息¶
响应格式 | JSON |
是否需要认证? | 是(仅限用户情景) |
是否存在速率限制? | 是 |
参数¶
名称 | 必填 | 说明 | 默认值 | 示例 |
command | 必填 | 必须设置为 FINALIZE (区分大小写)。 |
||
media_id | 必填 | media_id 已从 INIT 命令返回。 |
示例请求¶
POST https://upload.twitter.com/1.1/media/upload.json?command=FINALIZE&media_id=710511363345354753
示例结果¶
// Example of sync FINALIZE response
{
"media_id": 710511363345354753,
"media_id_string": "710511363345354753",
"size": 11065,
"expires_after_secs": 86400,
"video": {
"video_type": "video/mp4"
}
}
// Example of async FINALIZE response which requires further STATUS command call(s)
{
"media_id": 710511363345354753,
"media_id_string": "710511363345354753",
"expires_after_secs": 86400,
"size": 10240,
"processing_info": {
"state": "pending",
"check_after_secs": 5 // check after 5 seconds for update using STATUS command
}
}