画像等のアップロード関連

本節では media 系 API について述べる。と言っても実は POST media/upload 一つしかない。

画像付きツイートをするには、実は POST statuses/upload 単独ではなく、前もってファイルを某所にアップロードしておき、そこで得られる ID をツイートに添える必要がある。本説で記す API はそのアップロードを行うものである。

サンプルコードは次のものを参照して欲しい。

bin/twmedia.py

GET media/upload

GET media/upload を用いることである程度の画像ファイル等をアップロードできる。以下に注意点をザッとまとめておく。

  • Twitter オブジェクトの生成時にキーワード引数 domain を指定する必要がある。値は upload.twitter.com である。

  • 許される画像フォーマットは次のいずれかである:

    • PNG

    • JPEG

    • BMP

    • WEBP

    • GIF

  • 許されるファイルサイズは次のとおりである:

    • 画像は 5MB まで

    • ビデオは 15MB まで

  • 画像等のデータを生のバイナリーとしてファイルから読み取り、 POST media/upload のパラメーター media にそのまま渡す。

サイズの小さいファイルをアップロードする

比較的サイズの小さい PNG 画像ファイルを上述のスクリプトでアップロードすると、次のようになる。

bash$ ./twmedia.py ../illvelo.png
file size = 0 MB
{
    "expires_after_secs": 86400,
    "image": {
        "image_type": "image/png",
        "h": 505,
        "w": 512
    },
    "media_id": 675725940782071809,
    "media_id_string": "675725940782071809",
    "size": 47078
}

重要なのは media_id の値だ。これを POST statuses/update のパラメーター media_ids に指定してツイートすると、ツイートにこの画像が表示される。ツイートの投稿方法については タイムラインおよびツイート関連 を参照。

サイズの大きいファイルをアップロードする

Todo

その時が来たら執筆する。