読者です 読者をやめる 読者になる 読者になる

風柳メモ

ソフトウェア・プログラミング関連の覚書が中心。

TwitterアイコンURL取得API

twModHead

2013/07/30より、APIのエンドポイントが変わっています。
詳細はこちら↓で。

TwitterアイコンURL取得APIのエンドポイントが変わりました - 風柳メモ


Twitterの個別ページでアイコン等を前に持ってくるスクリプトをバージョンアップ - 風柳メモの際に…

AutoPageirze for SeaHorseの現状のSITEINFOでは、Twitterの個別ページで継ぎ足されるのは本文の部分(div.hentry)のみで、ユーザ情報部分(div.user-info)が無く、アイコンのURLが含まれていません。
ですが、吹き出しにアイコンを表示するにあたり、どうにかして継ぎ足されたツイートのユーザのアイコンURLを(screen_name辺りから)を引っ張ってくる必要が有りました。


一応、

要はhttp://api.dan.co.jp/twicon/screen_name/sizeが、常に最新のアイコンを指し示すURIとして使えるというわけです。

404 Blog Not Found:#perl - twitterのアイコンURLを固定するAPI

の存在は知ってはいましたが、事情により*1、TwitterのAPI(/users/show)を使用する、ほぼ同様のAPIを例によってGAE/Pythonで自作しました。

API仕様

  1. ノーマルアイコン取得(48px×48px)
    http://gadgtwit.appspot.com/twicon/<screen_name>
    http://gadgtwit.appspot.com/twicon/<screen_name>/normal
    例:http://gadgtwit.appspot.com/twicon/furyutei
  2. 小さいアイコン取得(24px×24px)
    http://gadgtwit.appspot.com/twicon/<screen_name>/mini
    例:http://gadgtwit.appspot.com/twicon/furyutei/mini
  3. 大きいアイコン取得(73px×73px)
    http://gadgtwit.appspot.com/twicon/<screen_name>/bigger
    例:http://gadgtwit.appspot.com/twicon/furyutei/bigger
  4. オリジナルアイコン取得(大きさ不定・アップロードしたサイズ?)
    http://gadgtwit.appspot.com/twicon/<screen_name>/original
    例:http://gadgtwit.appspot.com/twicon/furyutei/original
  5. 背景画像
    http://gadgtwit.appspot.com/twbg/<screen_name>
    例:http://gadgtwit.appspot.com/twbg/furyutei (サンプルは50%の大きさに縮めてあります)

オリジナルとの主要な違いは、

  • デフォルト(サイズ指定しない場合)は、normalと同じ(オリジナルのほうはbiggerと同じ)。
  • キャッシュ時間は1時間(3600秒)約3時間。
  • おまけで、背景画像取得用のAPIもつけてみた。
  • Google App EngineのFree Quota範囲を越える程に高負荷な利用があった場合は、提供中止予定。

気付いた点等

はてな記法で

[http://gadgtwit.appspot.com/twicon/furyutei:image]

だけだと、screenshot(No Image)となる。
302 Foundで本来のURLに飛ばしているだけなんだけれど、対応していない?

[http://gadgtwit.appspot.com/twicon/furyutei:image=http://gadgtwit.appspot.com/twicon/furyutei]

なら、http://gadgtwit.appspot.com/twicon/furyuteiのように表示されるみたい。

補足

今になって気がついたけれど、

UserIcons
Inicio | Tweetimag.es

http://b.hatena.ne.jp/rikuo/20091203#bookmark-17710184

なんてものがあるのか〜。最初からこっち使えば良かったかな……。
まぁ、少なくともUserIconsの方はざっとソースを読むかぎりスクレイピングしているみたいだけれども。

*1:TwitterのAPIを使わずにHTMLをパースしているというのが、Twitterの利用規約の“Twitterの事前の承諾なくして本サービスのスクレーピングを行うことは明示的に禁じられています”に引っかかりかねないため。知らなかった当時はともかく、規約を読んだ後だと躊躇われますので……。