Objective-CでOAuthその1


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が必要です。

実際の使い方は次のポストにて。

参考リンク


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です