stMind

about Tech, Computer vision and Machine learning

続 Instagram APIをライブラリから使う ruby編

昨日のエントリでは、PythonのLibraryを使ってInstagram APIにアクセスする
サンプルアプリを動かしたが、OAuthで認証した後、JSONのパースでErrorが出ていた。

今日は、Errorの原因がパース出来ないようなJSONのデータが返ってきてるのか、それとも単にJSONをパースしている
simplejsonの問題なのか当たりをつけるべく、同じく公開されているRubyのLibraryを使ってアクセスする
サンプルアプリを動かすことにする。

まず、準備としてsinatra, instagram, pitをgemインストールしておく。ちなみに、ruby1.9.3を使う。

$ gem install sinatra
$ gem install instagram
$ gem install pit

Instagram APIのサイトで、Manage Clientsの中のRedirect URIにhttp://localhost:4567/oauth/callback
指定しておく。

上記を準備し、以下のサンプルアプリを起動し、ブラウザからhttp://localhost:4567にアクセスする。

Connect with Instagramのリンクをクリックすると、認証のページにリダイレクトされ、アプリの連携許可を実施。
許可されるとアクセストークン取得のためのコードが戻ってくるので、コードとリダイレクトURIを含めて
アクセストークンを要求、取得する。取得したアクセストークンを使って、今回のサンプルでは、recent photosをサムネイルで
表示する。この辺りのOAuth2.0の仕組みは、ここがわかりやすかった。

f:id:satojkovic:20121004024622j:plain

おお、確かに写真が取れるな。JSONのパース、simplejsonで何か起きているのだろうか。