我正在使用parse.com的api,并试图将当前活跃的用户链接到他的facebook帐户。
我一直碰到:
Another user is already linked to this facebook id
关于我的问题:我如何获得用户连接的facebook id?我想把我当前的匿名用户换成活动的和登录的用户。
谢谢
我通过注销当前用户然后登录来解决这个问题。好用。
[PFFacebookUtils linkUser:[PFUser currentUser] permissions:permissionsArray block:^(BOOL success, NSError *error) {
if (!success) {
if (!error) {
NSLog(@"User Cancelled");
} else {
if(error.code == 208) {
[PFUser logOut];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
if(error) {
NSLog(@"An error occurred: %@", error);
} else {
// Carry on
}
}];
} else {
NSLog(@"An error occurred: %@", error);
}
}
} else {
// Carry on
}
}];
您可以忽略它,因为它是一个警告,通知您Facebook帐户已经链接(在您的情况下,它是匿名用户),而不是一个错误。
最后分配的用户将链接到Facebook帐户。所以你的初衷——"将当前活跃用户链接到他的facebook账户"是有效的,即使一个警告会被提出,通知你匿名用户链接到同一个facebook账户。
要避免此警告,请始终在将Facebook用户与当前活动用户链接之前注销匿名用户。
我遇到了同样的问题,解决方案甚至更好,只是忽略这个错误。这是一种警告。它被抛出,但用户被链接到另一个帐户。
检查当您尝试像这样链接时是否要求权限:
[PFFacebookUtils linkUser:[PFUser currentUser] permissions:[NSArray arrayWithObjects:@"publish_stream",@"publish_actions", @"user_about_me", @"user_photos", @"read_stream",@"friends_photos",@"email",@"user_birthday",@"user_location", nil] block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
[self login:nil];
NSLog(@"Woohoo, user logged in with Facebook!");
}else{
NSLog(@"%@", [[error userInfo] objectForKey:@"error"]);
NSLog(@"An error occurred: %@", error);
}
}];
在我的情况下,我传递nil参数的权限。也许对别人会有帮助