LoginSignup
10
10

More than 5 years have passed since last update.

Google Toolbox for Mac - OAuth 2 Controllers Sample

Last updated at Posted at 2012-10-03

===================================================

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にします。
  • Framework
    • "Build Phases"の"Link Binary With Libaries"でSecurity.frameworkSystemConfiguration.frameworkを追加します。

コードの実装

Introductionを参考にコードを実装します。

"Navigation Controller"にOAuthの情報を設定すると"View Controller"でAccess Tokenなどのauthの情報が取得できます。
(NavigationControllerはSubviewで使用しますので、AppDelegate.hとAppDelegate.mで追加してください。)

接続情報

OAuthの接続に必要な情報を取得します。(各サービスのリファレンスを参考にして下さい。)

例)appiaries

アプリを登録するとClient IDClientSecretなどの接続情報が得られます。
(コードの実装ではScopeにprofileを指定しています。)

appiaries

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のレスポンスが表示されます。

iPhone

補足

自己証明書

開発で費用の発生する証明書が使えなくて自己証明書を利用する場合は、setAllowsAnyHTTPSCertificateにURLを指定します。
(製品ではAppleの審査は通らないでしょうから注意して下さい)

@interface NSURLRequest(PrivateAPI)
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end
10
10
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10