1

在我的 iOS 应用程序中,我有正常工作的 Google+ 登录。但是当原生 Google+ 应用程序安装在设备中时它会失败。

如果设备中未安装 Google+ 应用程序,则通过网络进行登录并且工作正常。如果已安装,则通过此已安装的本机应用程序进行登录。

我正在使用 GPPSignIn API 进行身份验证。我参考的 Google 文档是https://developers.google.com/+/mobile/ios/sign-in

我得到的错误是-“登录错误 Error Domain=com.google.GooglePlusPlatform Code=-1”操作无法完成。(com.google.HTTPStatus 错误 400。)“”

 -(IBAction)handleTapOnGooglePlus:(id)sender {
 if ([[GPPSignIn sharedInstance] authentication]) { 
       [self showProgressHUDWithText:@"Signing Out"];
       [self signOut];
     } else {
       [[GPPSignIn sharedInstance] authenticate];
       [GPPSignIn sharedInstance].attemptSSO = YES;
     }
 }

提前致谢

沙尚克

4

1 回答 1

0

确保您的接口文件中包含 GPPSignInDelegate。然后试试这个。

-(IBAction)handleTapOnGooglePlus:(id)sender
 {
  if ([GPPSignIn sharedInstance].authentication)
            { 
                NSLog(@"Already authenticated");
            }
            else
            {
                [[GPPSignIn sharedInstance]signOut];
                 [GPPSignIn sharedInstance].delegate=self;
                [[GPPSignIn sharedInstance]authenticate];

            }

 }

在此处处理回调

-(void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error
{

        [[[GPPSignIn sharedInstance] plusService] executeQuery:[GTLQueryPlus queryForPeopleGetWithUserId:@"me"] completionHandler:^(GTLServiceTicket *ticket, GTLPlusPerson *person, NSError *error)
         {
             if(error)
             {
                 NSLog(@"Google Plus Error:%@",error.localizedDescription]);

             }
             else
             {

               NSLog(@"Authenticated");

         }];


}
于 2013-11-29T08:38:10.090 回答