===================================================
Google Toolbox for Mac - OAuth 2 Controllersを利用するとiPhoneやiPadのOAuth 2.0のクライアントが簡単に作れます。
BaaSのappiariesがOAuthの接続を提供しているのでサンプルをGitHubに作りました。
(汎用的なサンプルなので接続情報を変更すると他サービスにも利用できます。)
サンプルを作成した環境
* OS:Mac OS X 10.7.4(Lion)
* Xcode:Version 4.4.1
作り方
プロジェクト作成
Xcodeで新しいプロジェクトをSingle View Application
で作ります。
(Product NameはGTMOauth2Sample
にします。任意で変えて下さい。)
ライブラリのダウンロード
ダウンロードをして、不要なファイルは削除します。
$ cd ./GTMOauth2Sample
$ rm -rf ./.git/
$ svn checkout http://gtm-oauth2.googlecode.com/svn/trunk/ ./Library
$ cd ./Library/
$ mv ./Source/ ./GTMOAuth2/
$ rm -rf ./.svn/
$ rm -rf ./GTMOAuth2/.svn/
$ rm -rf ./GTMOAuth2/Mac/.svn/
$ rm -rf ./GTMOAuth2/Touch/.svn/
$ rm -rf ./GTMOAuth2/GTMOAuth2.xcodeproj/
$ rm -f ./GTMOAuth2/ReleaseNotes.txt
$ rm -rf ./HTTPFetcher/.svn/
$ rm -rf ./HTTPFetcher/GTMHTTPFetcher.xcodeproj/
$ rm -rf ./HTTPFetcher/Tests/
$ rm -f ./HTTPFetcher/ReleaseNotes.txt
$ rm -f ./HTTPFetcher/UnitTests-Info.plist
$ rm -rf ./JSON/.svn/
$ rm -rf ./Examples/
ライブラリを追加
Library
をプロジェクトに追加してビルドします。
Issuesが発生する場合
- Apple LLVM compiler
- "Build Settings"で"Apple LLVM compiler 4.0 – Language"の"Objecctive-C Automatic Refarence Counting"を
No
にします。
- "Build Settings"で"Apple LLVM compiler 4.0 – Language"の"Objecctive-C Automatic Refarence Counting"を
- Framework
- "Build Phases"の"Link Binary With Libaries"で
Security.framework
とSystemConfiguration.framework
を追加します。
- "Build Phases"の"Link Binary With Libaries"で
コードの実装
Introductionを参考にコードを実装します。
"Navigation Controller"にOAuthの情報を設定すると"View Controller"でAccess Token
などのauthの情報が取得できます。
(NavigationControllerはSubviewで使用しますので、AppDelegate.hとAppDelegate.mで追加してください。)
接続情報
OAuthの接続に必要な情報を取得します。(各サービスのリファレンスを参考にして下さい。)
例)appiaries
アプリを登録するとClient ID
やClientSecret
などの接続情報が得られます。
(コードの実装ではScope
にprofileを指定しています。)
static NSString *const kOAuthScope = @"profile";
static NSString *const kAuthorizationURL = @"https://api-oauth.appiaries.com/v1/auth";
static NSString *const kTokenURL = @"https://api-oauth.appiaries.com/v1/token";
static NSString *const kRedirectURI = @"http://callback/oauth";
static NSString *const kUsersMeURI = @"https://api-profiles.appiaries.com/v1/_sandbox/gtmoauth2sample";
static NSString *const kClientID = @"84baae6ad2f553b";
static NSString *const kClientSecret = @"c73844619bf5132c8e57eb83921a1";
iPhoneで接続
サンプルではログインするとAccess Token
を使ってAPIのレスポンスが表示されます。
補足
自己証明書
開発で費用の発生する証明書が使えなくて自己証明書を利用する場合は、setAllowsAnyHTTPSCertificate
にURLを指定します。
(製品ではAppleの審査は通らないでしょうから注意して下さい)
@interface NSURLRequest(PrivateAPI)
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end