TwitterのAPIを利用して取得できるプロフィール画像のサイズと注意点

TwitterAPIを利用してプロフィール画像を取得するのは簡単です。
以下のURLにパラメータをつけてリクエストするだけで画像を返してくれます。

Twitterプロフィール画像を指定する方法

指定できるパラメータは以下のようになっています。

screen_name:表示されている名前(氏名じゃない方)
size:取得する画像の大きさ

sizeには4つの値が指定でき、

bigger:73px by 73px
normal:48px by 48px
mini:24px by 24px
original:Twitterへアップロードした画像

となっています。

プロフィール画像取得例

自分のアカウントturusukeの73px画像を取得する場合は

となります。

biggerやnormalはアップロードした画像に関係なく同じ大きさの画像を返してくれて扱いやすいので、
Twitterクライアントなどはbiggerの画像を利用しているものが多いと思います。

じゃあ基本的にはTwitterのアイコンは73x73にあわせて作成するのが最適なのか?
・・・となるとそういう訳でもないようです。

Twitter上の自分のアカウントのページを確認してみると…

ぼけぼけですね…。
ここに表示されている画像は128x128pxの画像となっています。

あれ?
取得できるのは73pxまでなのに…
この画像は何?

と思って画像をクリックして調べてみると、
この画像、実はoriginalサイズのものをTwitterがページ上でトリミングして出力しているということがわかりました。

最も適切なサイズは128x128pxで、
そのサイズのものをアップロードすれば、
アカウントのページでぼけぼけになったりしないのですね。
ちなみに、それより大きい画像をアップロードすると、
Twitter上では長い方にあわせてトリミングされて表示されるようになっているみたいです。

プロフィール画像を取得してアップロードするような仕組みを作ろうとした場合には、
originalを取得して縦横128pxにトリミング、
小さい場合は拡大してあげてアップロードすればTwitterの仕様に合わせた画像を登録できます。

ここで一つ注意しなくてはならないのは、

デフォルトのたまごのアイコンのままだとoriginalが取得できない

ということですね。
biggerサイズのアイコンは取得できるのですが、
originalはユーザが画像をアップロードするまでは取得できない仕様のようです。

なので、originalのサイズなどを取得して、
画像が取れなかった場合はbiggerを使うようにする
といった処理が必要となってくると思います。