当前位置: 首页 > 知识库问答 >
问题:

检索用户的电子邮件Google登录iOS

云季同
2023-03-14

我正在尝试使用Swift从iOS中的google登录API中查找登录帐户的电子邮件。我使用的代码与google开发者说明页面中给出的代码相同。

这是我的密码

description=[NSString stringAnd Format: @"%@ %@ %@ %@ %@ %@", person.display名称,person.gender,person.ageRange.min,person.ageRange.max,person.emails,person.birthday];

输出时,我打印这个"描述"ID是这样的:

Karanvir Singh男18 20(“GTLPlusPersonEmailsItem 0x7fbe4a67aee0:{值:\”karanvir95@gmail.com\“类型:\”帐户\“}”)(空)

我想知道,当我只想知道电子邮件ID时,如何删除多余的输出

我希望输出是这样的:

Karanvir Singh男18 20karanvir95@gmail.com 17/02/1995

按要求编码:

界面视图

@结束

@实现ViewController@synthesisigninbutton@综合信号手柄@综合信号处理@综合信息标签@综合描述;-(void)viewDidLoad{[super viewDidLoad];signOutHandle.hidden=true;}

  • (void)didReceiveMemoryWarning{[super didReceiveMemoryWarning];//处置任何可以重新创建的资源。}

-(void)refreshInterfaceBasedOnSignIn{if([[GPPSignIn sharedInstance]身份验证]{signOutHandle.hidden=false;signInHandle.hidden=true;infoLabel.text=description;}否则{

} }

>

  • (val)finishedAnd Auth:(GTMOAuth2Authentiation*)auth错误:(NSError*)错误{NSLog(@"接收错误%@和auth对象%@",错误,auth); if(错误) { // 在这里做一些错误处理。}

    GTLServicePlus* plusService = [[GTLServicePlus alloc] init];
    plusService.retryEnabled = YES;
    [plusService setAuthorizer:[GPPSignIn sharedInstance].authentication];
    
    GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];
    query.collection=kGTLPlusCollectionVisible;
    [plusService executeQuery:query
            completionHandler:^(GTLServiceTicket *ticket,
                                GTLPlusPerson *person,
                                NSError *error){
                if (error) {
                    GTMLoggerError(@"Error: %@", error);
                } else {
                //    [person retain];
                    NSString *age = [NSString string];
                    description = [NSString stringWithFormat: @"%@ %@ %@ %@ %@ %@ %@", person.displayName,person.gender,person.ageRange.min,person.ageRange.max,person.emails,person.birthday,email];
    

    NSLog(说明);}

    GTLQueryPlus*query2=[GTLQueryPlus queryForPeopleListBackUserId:@"me"集合: kGTLPlusColltionVisight];

    (GTLServiceTicket*票证, GTLPlusPeopleFeed*peopleFeed, NSError*错误){

                                if (error) {
    
                                    GTMLoggerError(@"Error: %@", error);
    
                                } else {
                                    // Get an array of people from GTLPlusPeopleFeed
    

    *peopleList=peopleFeed.items;

                                }
                            }];
                    [self refreshInterfaceBasedOnSignIn];
                }];
    } }
    

    -(iAction)SignerButton:(id)发送方{[[GPPSignIn sharedInstance]注销];[GPPSignIn sharedInstance]断开连接];

    signOutHandle.hidden=true;
    signInHandle.hidden=false;
    infoLabel.text=@""; }
    

    >

    (void)断开连接{[[GPPSignIn sharedInstance]断开连接];}

    (IBAction)signedIn:(id)发件人{GPPSignIn*SignIn=[GPPSignIn共享实例]; SignIn.shouldFetchGooglePlusUser=YES; SignIn.shouldFetchGoogleUserEmail=YES; SignIn.clientID=kClientId;

    [UIApplication共享应用]委托;

    签名。shouldFetchGoogleUserEmail=是;签名。代表=自我;

    SignIn.scopes=@[kGTLAuthScopePlusUserinfoProfile, kGTLAuthScopePlusLogin, kGTLAuthScopePlusMe, kGTLAuthScopePlusUserinfoEmail]; SignIn.delegate=自己;[SignIn认证];电子邮件=(@"%@",SignIn.user电子邮件); NSLog(@"电子邮件:%@",电子邮件);}

    (void)didDisconnectWithError:(NSError*)错误{if(error){NSLog(@“Received error%@”,error);}else{NSLog(@“用户已注销并断开连接”);//用户已注销并断开连接。//按照Google术语的指定清理用户数据。}

    @结束

  • 共有1个答案

    王德华
    2023-03-14
    description = [NSString stringWithFormat: @"%@ %@ %@ %@ %@ %@ %@", person.displayName, person.gender,person.ageRange.min,person.ageRange.max,person.emails.value,person.birthday];
    

    我想指出的是,你的人有零比特日

     类似资料:
    • 问题内容: 我希望django通过电子邮件而非用户名对用户进行身份验证。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个,所以我不能有一个。 另一个原因是所有电子邮件都是唯一的,但有时用户名已被使用。因此,我将自动创建用户名为。 我该如何更改才能让Django通过电子邮件进行身份验证? 这就是我创建用户的方式。 这就是我的登录方式。 除了先获取用户名外,登录还有其他方法吗?

    • 我希望django通过电子邮件而不是用户名来验证用户。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个url

    • 我已经实现了登录用户名或电子邮件在我现有的项目和工程罚款。我想将其扩展为使用用户名、电子邮件或电话登录。我想要一个用户登录用户名,电子邮件或电话号码和密码。 这是我的代码App\Http\Controllers\Auth\LoginController 应用程序\Http\控制器\Auth\注册控制器 注册工作正常,我可以将用户电话存储到用户表中。我已将电子邮件的输入类型更改为views/auth

    • 在“登录苹果”上,如果用户选择了“隐藏我的电子邮件”,他将注册一个私人电子邮件ID。同样,如果同一个用户尝试使用原始电子邮件地址(使用任何社交媒体帐户或原始电子邮件id)注册,他将被视为不同的用户? 如何可能确保我们在注册后数据库中有一个唯一的用户?

    • 我希望身份验证组件允许用户登录输入用户名或电子邮件。在我的用户表中,两个字段-userName和userEmail都是唯一的。注册时,密码生成如下: sha1($username.$password); 问题是用户无法使用电子邮件登录。 应用程序控制器 用户控制器:登录功能如下: Auth。php:(我在这里对生成密码的方式做了一些更改,因为我正在使用cakephp会话自动登录到SMF论坛。) 我

    • 目前,我的代码使用IMAP(imaps)和JavaMail访问我的Gmail收件箱,目的是阅读从最新到最旧发送给我自己的电子邮件,识别哪些电子邮件具有. zip或. xap格式的附件。如果找到,电子邮件的主题会显示出来,并询问我是否要下载附件。 如果我单击否,它会继续搜索。如果我单击是,它会调用createFolder方法来创建一个目录,将附件保存在那里,然后提取它。 问题:我收件箱中最近的一封电