iOS アプリでは、以下のコードを使用して、Google プラス サインイン API を使用してユーザーが既にログインしている別のビュー コントローラーでユーザーの認証を取得しています。
GTMOAuth2ViewControllerTouch *viewController = [[GTMOAuth2ViewControllerTouch alloc]
initWithScope:@"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me"
clientID:CLIENT_ID
clientSecret:CLIENT_SECRET
keychainItemName:NAME
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
[[self navigationController] pushViewController:_googlePlusCtrl animated:YES];
しかし、コードの下で実行している場合、viewController.authentication.accessToken は nil 値を与え、viewController.authentication も nil 値を与えます。
- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
finishedWithAuth:(GTMOAuth2Authentication *)auth
error:(NSError *)error
{
if (error != nil) {
// Authentication failed
NSLog(@"failed");
} else {
// Authentication succeeded
NSLog(@"Success");
}
}
編集:アシムのコメントに応えて...
私はアプリデリゲートにこれを持っています:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
return [GPPURLHandler handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
この関数に特定のコードを記述する必要はありますか?