1

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];
}

この関数に特定のコードを記述する必要はありますか?

4

1 に答える 1