我正在向用户提供手动注册或使用Facebook注册的选项(我正在使用Parse)。现在的问题是,如果用户手动注册然后尝试使用Facebook登录正在创建第二个帐户并将电子邮件valun保留为null(因为已经存在)。那么这个解决方案是什么?有官方解决方案吗?我尝试了一种解决方法:
FBRequest *requestEmail = [FBRequest requestForMe];
[requestEmail startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"Error %@",error);
NSDictionary *userData2 = (NSDictionary *)result;
NSString *email2=userData2[@"email"];
PFQuery *query = [PFUser query];
[query whereKey:@"email" equalTo:email2];
[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
NSString *emailQue =[object objectForKey:@"email"];
if(error || (emailQue==NULL) || (emailQue==nil)){
NSLog(@"User facebook account does not exist");
}
else{
NSLog(@"User facebook email exist");
NSLog(@"email %@",emailQue);
}
}];
}];
失败(没有可用的活动令牌),我相信这不是正确的方法。即使这项工作,我也不能停止loginWithPermission一旦取消就创建新用户。
有什么建议吗?
答案 0 :(得分:1)
如果您知道此用户是现有的PFUser,则可以将其Facebook帐户与其现有帐户相关联。这是一个受支持的Parse功能。
if (![PFFacebookUtils isLinkedWithUser:user]) {
[PFFacebookUtils linkUser:user permissions:nil block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@"Woohoo, user logged in with Facebook!");
}
}];
}
您可以使用
获取当前用户PFUser *currentUser = [PFUser currentUser];
或者您甚至可以将匿名用户转换为Facebook用户。