【问题标题】:Parse.com PFUser Linking twitter and facebook account?Parse.com PFUser 链接 twitter 和 facebook 帐户?
【发布时间】:2013-04-20 04:25:51
【问题描述】:

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

问题来了:

如果用户通过其facebook 帐户登录,则会在云上创建一个新的PFUser。 如果同一用户再次通过他的twitter 帐户登录,则会在云上创建另一个PFUser。 现在,如果用户想要将他的facebook 帐户与他的twitter 帐户链接,parse.com 会回复“此 Twitter 帐户已连接到另一个用户”。

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

【问题讨论】:

标签: ios facebook twitter parse-platform


【解决方案1】:

没有看到任何代码,听起来您在尝试链接 Twitter 帐户时正在调用 PFTwitterUtils logInWithBlock。那将是错误的方法,因为它只会创建一个新的 PFUser,而不是使用通过 facebook 登录创建的现有 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!");
        }
    }];
}

【讨论】:

  • 很抱歉,您在这里弄错了,我已经在使用您发布的相同代码。当我尝试将 Twitter 帐户(之前已连接,即另一个 PFUser)链接到我当前的帐户时,会出现问题。它会抛出此 Twitter 帐户已连接到其他用户的错误。我该如何解决这个问题?
【解决方案2】:

你可以做一件事:

当您将当前用户与另一个 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
                    }
}];
}

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 1970-01-01
      • 2023-02-15
      • 2015-07-15
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      相关资源
      最近更新 更多