iOS:使用 Google 登录

iOS: Login with Google

我正在尝试使用 Google 登录。它适用于所有帐户。但是行为是不同的。对于某些帐户,它会发送完整的 public 配置文件,即显示名称、性别、电子邮件地址、用户 ID 等

对于某些(新)帐户,它只是发送电子邮件地址和用户 ID DisplayName,而性别为零。每次使用 Google 登录时,我都需要所有这些参数。为什么某些帐户缺少这些参数?

请关注这个link

当 Google 登录过程完成后输入此代码

-(void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error
    {
        if (error)
        {
            // Do some error handling here.
        }
        else
        {
            GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];
            query.fields = @"id,emails,image,name,displayName";
            GTLServicePlus* plusService = [[GTLServicePlus alloc] init] ;
            plusService.retryEnabled = YES;
            [plusService setAuthorizer:[GPPSignIn sharedInstance].authentication];
            plusService.apiVersion = @"v1";
            [plusService executeQuery:query  completionHandler:^(GTLServiceTicket *ticket, GTLPlusPerson *person, NSError *error)
            {
                if (!error)
                {
                    NSLog(@"Display name : %@",[person.name.givenName stringByAppendingFormat:@" %@", person.name.familyName]);
                    NSLog(@"email id : %@",[GPPSignIn sharedInstance].authentication.userEmail);
                }
            }];
        }
    }

我希望这个 link 和代码对你有用。