Twitter等の最近の外部サービスではクライアントアプリからの認証にOAuthを使うことが多くなってきました。Objective-CではOAuthConsumerというライブラリを使うことでOAuthによる認証を実現することができますが、ドキュメント類が少なかったり若干癖のあるライブラリなので、ここに使い方を書いておこうと思います。
なお、ここで説明している方法は僕が勝手に解釈/試行錯誤した結果たどり着いた方法であり、OAuthConsumerが公式に説明している情報に基づいたものではありません。なにか問題があっても責任はいっさいとれないので、自己責任のもと注意して使ってください。
OAuthConsumerの入手
OAuthConsumerで検索するとGoogle codeのoauthプロジェクトのページとチュートリアルが見つかります。特にこれらのページに記述がないのですが、実は現在プロジェクトはgithub上で更新されていて、Google codeの方には古いコードしかないようです。
githubから最新版を取得してきます。
git clone https://github.com/jdg/oauthconsumer.git
プロジェクトへの組み込み
Google Codeで入手できるバージョンにはテストケース等が含まれていますが、githubから入手できるバージョンには必要なファイルしか含まれていません。なので、使いたいプロジェクトにそれらのファイルをすべて丸ごとインポートしてしまえばOKです。
Macで使う場合の対策
OATokenManagerにはOAuthの認証時に認証用URLをブラウザで開くためのコードが実装されているのですが、これがUIApplicationクラスを使う実装になっているため、Macでビルドしようとするとビルドエラーが発生してしまいます。Macでビルドしたい場合は、下記の二行をコメントアウトしておきましょう。
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat: @"%@authorize?oauth_token=%@&oauth_callback=%@", oauthBase, token.key, callback]]; [[UIApplication sharedApplication] openURL:url];
フレームワークの追加
OAuthConsumerのビルドにはSecurity.Frameworkが必要です。
実際の使い方は次のポストにて。