サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

メディアをアップロードする方法

POST media/upload エンドポイントを使用する場合には、理解しておかなければならない重要な概念がいくつかあります。 OAuth を使ってメディアをアップロードするのは少し複雑なので、エンドポイントを使った動作サンプルと覚えておかなければならないことをこのページにまとめます。



覚えておくべきこと

  • この方法では マルチパート POSTを使用するので、 OAuth を処理する手順が少し異なってきます。 OAuth の署名ベース文字列や署名を算出する際に、 POST やクエリーの文字列パラメータは使用されません。oauth_* パラメータのみが使用されます。
  • 最大ファイルサイズは、GET help/configurationで取得できる“photo_size_limit”フィールドの値になります。
  • 更新状態の最大メディア数は、GET help/configurationで取得できる“max_media_per_upload”フィールドの値になります。
  • Users have a separate, published daily media upload limit that is independent of their unpublished daily status update limits.
  • The image passed should be the raw binary of the image or binary base64 encoded, no need to otherwise encode or escape the contents as long as the Content-Type is set appropriately (when in doubt: application/octet-stream).
  • サポートしている画像形式は PNGと JPG と GIFです。アニメ GIFもサポートしています。
  • base64 でエンコードした画像を投稿する場合は、メッセージのimage 部分に “Content-Transfer-Encoding: base64” を設定するようにしてください。
  • Multi-part message boundaries must be on their own line and terminated by a CRLF.
  • このエンドポイントを使ってPOST の実行例を試してみる場合は、Twurlでテストすることを推奨します。また、使用可能なTwitter ライブラリも参照してください。


media/upload のサンプル

As of Twurl v0.9.0 (see our command-line Twurl tool) support for calling Twitter’s v1.1 REST API with a multipart message for the POST media/upload endpoint now exists. Use this example as a great way to debug your own code. Twitter ライブラリの多くはあなたに代わってこのPOSTを正しく処理するメソッドを実装しているので、覚えておいてください。

-t オプションを使用すると、Twitter APIへPOSTされたリクエストと応答の全トレースが表示されます。

twurl -H upload.twitter.com -X POST "/1.1/media/upload.json" --file "/path/to/media.jpg" --file-field "media"

{
  "media_id": 553656900508606464,
  "media_id_string": "553656900508606464",
  "size": 998865,
  "image": {
    "w": 2234,
    "h": 1873,
    "image_type": "image/jpeg"
  }
}