API・マッシュアップ

  • いままで問題なく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は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));