POST media/upload (FINALIZE)

概述

使用 APPEND 命令上传整个媒体文件后,则应调用 FINALIZE 命令。当(且仅当)FINALIZE 命令的响应包含 processing_info 字段时,则可能还需要使用 STATUS 命令,并在继续创建推文之前等待其返回成功。

请求

请求应该是 multipart/form-dataapplication/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
  }
}