gpt4 book ai didi

ios - PFFacebookUtils logInWithPermissions 在模拟器上失败

转载 作者:行者123 更新时间:2023-12-01 17:31:26 25 4
gpt4 key购买 nike

我正在将我的 iOS 应用程序与 Parse 和 Facebook 集成。它在我的 iPhone 4s 上运行良好——运行 iOS 6——但是当我在我的 xCode 5 模拟器上尝试测试帐户时它失败了。

当我使用 facebook 按钮按下我的登录时,我会看到一个屏幕显示:您已经授权 Test999(我的应用程序的名称)。当我调用此行时,就会发生这种情况:

[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) 

我按确定。它会将我发送到“您必须先登录”屏幕。我输入我的用户名和密码,然后按登录——我被送回你已经授权的 Test999。我按下 OK —— 我会看到一个空白 View ,左上角有一个 x 来关闭它。没有别的事可做,所以我推了它,然后我被送回“您必须先登录”屏幕。

所以真的没有办法用模拟器登录。我尝试“重置内容和设置”,但没有帮助。

在对类似问题的回答之后,我尝试添加一个 reconnectWithFb 方法(如下),并且我还将我的 Facebook sdk 更新到了 3.9 版。没有什么帮助。

这是我使用 facebook 方法登录的结果:
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {

if (!user) {
if (!error) {
NSLog(@"Uh oh. The user cancelled the Facebook login.");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"User cancelled facebook login" message:@"Uh oh. The user cancelled the Facebook login." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Dismiss", nil];
[alert show];
} else {
NSLog(@"welcome screen loginWithFB: Uh oh. An error occurred: %@", error);
[self performSelector:@selector(reconnectWithFB) withObject:nil afterDelay:0.5];
}
} else if (user.isNew) {
NSLog(@"New user with facebook signed up and logged in!");
} else {
NSLog(@"User with facebook logged in!");
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSString *facebookUsername = [result objectForKey:@"name"];
[PFUser currentUser].username = facebookUsername;
[[PFUser currentUser] setObject:[result objectForKey:@"id"] forKey:@"facebookid"];
[[PFUser currentUser] saveEventually];
[[NSNotificationCenter defaultCenter] postNotificationName:kUsersToWatchNotification object:result];
} else {
NSLog(@"Error getting the FB username %@", [error description]);
}
}];
}

和我的 reconnectWithFB (在模拟器上总是有一个空的 fbAccounts 数组:)
-(void) reconnectWithFB {
NSLog(@"reconnectWithFB called");
ACAccountStore *accountStore;
ACAccountType *accountTypeFB;
if ((accountStore = [[ACAccountStore alloc] init]) && (accountTypeFB = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook] ) ){
NSArray *fbAccounts = [accountStore accountsWithAccountType:accountTypeFB];

NSLog(@"fbAccounts %@", fbAccounts);

id account;
if (fbAccounts && [fbAccounts count] > 0 && (account = [fbAccounts objectAtIndex:0])){
[accountStore renewCredentialsForAccount:account completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) {
//we don't actually need to inspect renewResult or error.
if (error){
NSLog(@"error in reconnectWithFB %@", error);
}
}];
}
}
}

对此的任何帮助将不胜感激。

最佳答案

看起来解决方案是将打开的 url 方法添加到我的 App Delegate 中:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [PFFacebookUtils handleOpenURL:url];
}


- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url     sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [PFFacebookUtils handleOpenURL:url];
}

关于ios - PFFacebookUtils logInWithPermissions 在模拟器上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20631975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com