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
  }
}

Was this document helpful?

感谢

谢谢你的反馈。我们真的很高兴能帮上忙!

Thank you for the feedback. How could we improve this document?

Thank you for the feedback. Your comments will help us improve our documents in the future.