2012-03-16

twitterのフィードURL

私のように、およそフィード可能なものはすべてGoogle Readerで読みたい人間は、TwitterもGoogle Reader経由で読む。いつもなら、何も考えずにユーザーのURLをsubscribeに放り込めばいいのだが、どうも今日はGoogle Readerでは、なぜか動かない。そこで、手動でやることにした。

TwitterはHTML内にフィードURLを指定していないが、フィードURLはREST APIを使うことで作成できる。使うAPIはこれだ。

GET statuses/user_timeline | Twitter Developers

http://api.twitter.com/1/statuses/user_timeline.formatがURLである。対応しているformatはXML、JSON、RSS、ATOMである。ただし、XMLやJSONでは、引数にinclude_rtsを含めないとRTは取得できない。今回はフィードURLを作りたいので、RSSかATOMを使う。ユーザーを指定するために、引数として、user_idかscreen_nameを与えてやればよい。user_idの取得は面倒なので、screen_nameを使うほうが簡単だ。

たとえば@twitterのフィードURLをRSSとして得たかったら、以下のようになる。

http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=twitter

もちろん、SSLも可能だ。

https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=twitter

追記:ATOMフォーマットは5月に廃止される。詳しくは、API Housekeeping | Twitter Developersを参照。

もし、読者が原理主義者ならば、ATOMを使うこともできる。

https://api.twitter.com/1/statuses/user_timeline.atom?screen_name=twitter

しかし、最近はRSSとATOMの論争も聞かなくなった。大抵のサイトでどちらもサポートしているが、結局使われるのは、RSSの方が多い。なにしろRSSが先発なのだから、そのぶん知名度も高い。xkcd: Standardsを思い出す。

ちなみに、Google Readerが自動的に使っていたのは、どうも不思議なAPIで、http://twitter.com/statuses/user_timeline/user_id.rssとなっている。user_idの部分を適切なuser_idで置き換える。

また、GET search APIを使えば、エゴサーチが簡単にできる。例えば、このブログに言及しているtweetをすべてみるには、以下のようなURLを使えば良い。

http://search.twitter.com/search.rss?q=cpplover.blogspot.com&result_type=recent

3 comments:

Anonymous said...

ATOM は 5 月で消えるはずです https://dev.twitter.com/blog/api-housekeeping

江添亮 said...

うへぇ、今月の6日発表とは。
もしかして、Google Readerがいま受付ないのって、この対応に追われているからじゃないだろうか。

しかし、既存のdeprecatedなURLで登録されているフィードはどうするんだろう。
変換するんだろうか。

Anonymous said...

Lovely work! I'm definitely going to visit the blog frequently.
1987 Mazda RX7 AC Compressor