API・マッシュアップ

TwitterのタイムラインをRSSで取得していたのがエラーで取得できなくなった場合

いままで問題なくTwitterのタイムラインをRSSで取得出来ていたのが突然エラーで取得できなくなった場合の簡単な対応方法
2013年3月にTwitterのAPIが変更となりAPI 1.1になることは多くのサイトでも書かれているが、2012年の10月から既に仕様の変更が始まっている。
その一つの例が、ユーザーのタイムラインをRSSで取得するAPI
いままでは
http://twitter.com/statuses/user_timeline/androidstyle.rss
といった形式で、user_timelineに続けてタイムラインを取得したいユーザー名+rssで簡単に取得出来たが、現在ではこの方法はエラーとなり
Sorry, that page does not exist
が返される
長い目で見れば、この機会にAPI 1.1の仕様に変更すればよいがOAuth認証ロジックの追加も必要となるため大きな手直しが必要となる。
そこで、完全移行の2013年3月まで使用可能だと思われる、たった1行の変更で済む簡単な修正方法を紹介する。
エラーになる部分
http://twitter.com/statuses/user_timeline/iphonestyle.rss
http://api.twitter.com/1/statuses/user_timeline/iphonestyle.rss
に変えるだけ。
URLにapiが付くことと「1」の部分は所謂API 1.0が入る。
今まで通りRSSの形式で取得できるから、他の部分は変更しなくていいはず。

Twitter API 変更(API 1.1)に対応する方法

Twitterは2013年3月5日に向けて一部APIの廃止、レートリミット方式の変更、表示方式の厳格化、等を発表。
「表示方式の厳格化」はユーザー名の表示やタイムスタンプといった画面レイアウトに大きく関わるものもある。
現行のAPI 1.0からAPI 1.1に対応するためにはどうすればいいのかをピックアップして紹介する。
■認証
仕様変更によりOAuth認証をしないとAPIは扱えなくなる。
■REST API
REST APIは例えば
http://api.twitter.com/1/account/totals
http://api.twitter.com/1/notifications/follow
http://api.twitter.com/1/lists.json
といったものであり、廃止になるものと
http://api.twitter.com/1.1/〜
に変更されるものがある。
■検索API
API 1.0
http://search.twitter.com/search.json
API 1.1
http://api.twitter.com/1.1/search/tweets.json
例(要認証)
http://api.twitter.com/1.1/search/tweets.json?q=iphone&until= 2012-11-12&count=100
■TwitterへのPOST
API 1.0
$to->OAuthRequest(‘http://api.twitter.com/1/statuses/update.xml’, ‘POST’, array(‘status’ => $message));
API 1.1
$to->OAuthRequest(‘http://api.twitter.com/1.1/statuses/update.json’, ‘POST’, array(‘status’ => $message));