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:

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

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

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

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

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.