happy_ryo

2013.08.05

Croudia の API を叩く Objective-C のサンプルを書いた

iOSアプリとピーチク担当の岩間です、会社のFacebookページに投稿する為の写真を撮ったりもしています。

先日、ブログのネタを探そうと日本の全エンジニアに捧ぐ!現在公開されているAPI一覧 を眺めていたら、ぼくの Twitter 上のタイムラインに良く名前の出てくる Croudia というTwitter LikeなサービスのAPIが入っていなかったので、あえて Croudia を選択してハッカソンに行くときに良くやる Objective-C から API を使う簡単な枠組みを緩い感じで書いてみました。(画像投稿は考慮してません)

思いの外長くなってしまったので、ソースはこちらに置いておきます。

https://github.com/happy-ryo/Croient

使い方

Croudia へのアプリケーション登録

まずは Croudia の開発者ページで、アプリケーションの登録をします。
アプリケーション管理

Redirect URI にはアプリケーション側の認証用 URLScheme として登録予定の文字列を設定してください。(hogecroudia:// 等)

プロジェクト側で必要な設定

1.URLScheme に Redirect URI で指定した文字列と同じ物を登録する。
2.ここからソースを取得して、Croudia Client 内のファイルをプロジェクトに追加する。
3.CROAuth.m 内の CONSUMER_KEY と CONSUMER_SECRET に Croudia 側から払い出された Consumer key と Consumer secret をそれぞれ設定する。
4. CR_URL_SCHEME に設定した認証用のスキームを設定する。

使ってみる(認証編)

CROAuth を UIApplicationDelegate を採用したクラスにプロパティとして持ち、起動時にインスタンスを生成しておきます。同時に URLScheme からの起動時に実行されるメソッド内で CROAuth の URLHandler: が呼ばれるようにしておきます。

OAuth 認証したい場所で以下のように書きます。

該当部分が実行されると、 Safari が立ち上がり、Croudia のログイン認証とアプリケーション連携を行うページが表示されます。 連携を承認することで URLScheme を介して必要な条件がアプリケーション側に引き渡され、 OAuth の認証情報が行われます。

使って見る(APIリクエスト編)

サンプルとしてあげているソースでは、とりあえず Public Timeline が取得できる例をあげました。
基本的には CRAPIRequest を継承し、 CRPath を実装して、インスタンス化したクラスの load メソッドを実行することで -(void)parseResponse:(NSData *)data error:(NSError *)error{}; でAPI問い合わせの結果を受け取ることが出来ます。

好みに応じて、画像投稿に対応させたり、load で引数渡したり Block 渡すようにしたりすればそれなりに使えるようにはなるんじゃないかなーと思います。

アライドアーキテクツでは、どこかのハッカソンに参加したり、週末一人ハッカソンしてはテストを書かずに負債を量産しているダメエンジニアを蹴り飛ばしてくれるエンジニアを募集しています。

採用サイトはこちら