[メモ]twitter REST API による複数画像付きツイートの仕方

久方ぶりです。

今回は、twitterのAPIでツイートに複数の画像を指定する仕方を記述します。

基本的には、次のURLの通り・・・
https://dev.twitter.com/docs/api/multiple-media-extended-entities

で、見に行くの面倒な人用に、簡単に書くと以下の通り

https://upload.twitter.com/1.1/media/upload.json

上記エンドポイントに対して、画像ファイルを1つずつuploadします。
uploadが成功すると

{
	"image": {
		"w": 1546,
		"h": 1024,
		"image_type": "image\/jpeg"
	},
	"media_id": 460938773744717825,
	"media_id_string": "460938773744717825",
	"size": 530963
}

このような、値が返って来ます。
で、返ってきた「media_id」か「media_id_string」を使ってツイートのREST APIをたたきます。

ツイートするためのエンドポイントは以下の通りです。

https://api.twitter.com/1.1/statuses/update.json
※uploadした画像のmedia_idが有効な時間はuploadしてから60分らしいです。
上記のリンク先にそんなことが書かれていた気がします。

で、、画像付きをツイートするには、今まで通りのパラメータに「media_ids」パラメータを追加します。
「media_ids」は先ほどuploadしたときの返り値のmedia_idを最大4つ(2014-06-25現在)まで設定できます。
複数指定のしかたはmedia_idをカンマ区切りで記述すればOKです。

因みに、ツイート時に5つのmedia_idを設定すると次のエラーコードとメッセージがjsonで返ってきました。
code=44
message=media_ids parameter is invalid.

また、画像1枚だけを上記の要領でツイートすると、ツイートはされますが、公式のタイムラインに初期表示として画像が表示されないようです。(2014-06-25現在)
なので、1枚しかないのであれば、今まで通り以下のREST APIを使用するのがいいと思います。

https://api.twitter.com/1.1/statuses/update_with_media.json

以上、ちょっとした覚書でした。

2014-10-31 追記:
アニメーションgifは1枚のみ可能。
アニメーションgif + jpg ×
アニメーションgif + 通常のgif ×

2015-05-21 追加:
エンドポイント /1.1/statuses/update_with_media.jsonが本日使用できなくなったっぽいです。
また、公式のweb表示も1枚のときでも正しくサムネイル表示されるようになっているようです。
※これはいつからなおったのか確認していません・・

スポンサーリンク