Parse.com PFUser链接Twitter和Facebook帐户?

时间:2013-04-26 04:45:19

标签: ios facebook twitter parse-platform

我使用parse.com作为我的应用程序的后端,它使用户能够通过他的Facebook或Twitter帐户登录。此外,它还具有将twitter / facebook链接到其预先存在的帐户的功能。

问题在于:

如果用户登录其facebook帐户,则会在云上创建新的PFUser。 如果同一用户再次登录其twitter帐户,则会在云上创建另一个PFUser。 现在,如果用户想要将其facebook帐户与其twitter帐户相关联,则parse.com回复“此推特帐户已与另一位用户相关联”。

如何在这里合并两个PFUsers?任何人都可以建议我解决这个问题的方法吗?

3 个答案:

答案 0 :(得分:4)

如果没有看到任何代码,当您尝试链接Twitter帐户时,听起来就像是在调用PFTwitterUtils logInWithBlock。这将是错误的方法,因为它只会创建一个新的PFUser而不是使用通过登录facebook创建的existring PFUser。

您要做的是使用PFTwitterUtils方法将当前PFUser与Twitter帐户相关联。 The Parse documentation显示了以下代码。

PFUser *user = [PFUser currentUser];
if (![PFTwitterUtils isLinkedWithUser:user]) {
    [PFTwitterUtils linkUser:user block:^(BOOL succeeded, NSError *error) {
        if ([PFTwitterUtils isLinkedWithUser:user]) {
            NSLog(@"Woohoo, user logged in with Twitter!");
        }
    }];
}

答案 1 :(得分:4)

你可以做一件事:

当您将当前用户与另一个任何Facebook / Twitter帐户相关联时,您需要在某个时间点取消用户链接。让我们说当你注销时,你需要检查当前用户是否与Facebook / Twitter链接?

如果您当前的用户与您需要取消链接的任何其他用户相关联,以便您可以再次将Facebook / Twitter用户与任何其他用户相关联,就像这样

对于Facebook用户:

if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){

                [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // User unlinked
                    }else{
                       // Erro while unlink user
                    }
                }];
            }

对于Twitter用户:

if([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]){

              [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // unlink user
                    }else{
                        // Error while unlink
                    }
}];
}

答案 2 :(得分:3)

遗憾的是,似乎不可能将Facebook或Twitter帐户链接到多个PFUser。此外,似乎无法合并另外两个PFUser条目 - 请参阅Parse's answer here

您可能想要做的是将PFUser表上的数据严格保留用于授权目的,并将其余数据保存在新的专用Parse类中(比如用户数据,由PFUser条目指向)。

从这个意义上讲,您将能够使用指向同一userData条目的多个PFUser条目。因此,如果您之前存在的PFUser条目链接到Parse后端中的特定Twitter帐户,则最好让用户登录到该特定PFUser,然后将该条目指向先前存在的userData条目。