iOS 9 未登录 Facebook 登录?
Posted
技术标签:
【中文标题】iOS 9 未登录 Facebook 登录?【英文标题】:iOS 9 not logged in Facebook login? 【发布时间】:2015-10-27 12:23:49 【问题描述】:我正在使用 Xcode 7.0,在 ios 9.0.2 上进行测试并使用 Facebook SDK 4.7.0。 Code=308 "(null)" 问题发生在 iOS 9 中。我在我的项目中使用了 Objective-c 代码。如何解决这个问题? 下面附上我的代码。
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"public_profile",@"email", @"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if ([FBSDKAccessToken currentAccessToken]) startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
if (!error)
];
];
【问题讨论】:
参考这个答案***.com/a/30275960/4536708 感谢您的回复。Facebook 登录在 iOS 8 中工作。尤其是在 iOS 9 中不工作。 是的,但只有很小的语法更改所有代码都可以正常工作。 @Anbu @DharmeshDhorajiya 谢谢。语法有什么变化? 在 iOS9 中添加了这一行 fromViewController。 @Anbu 【参考方案1】:iOS9.2.1
这解决了我的 308 问题
作为“源代码”打开,plist 文件,搜索 LSApplicationQueriesSchemes,然后根据需要添加/修改。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbshareextension</string>
</array>
【讨论】:
【参考方案2】:试试这个代码:
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithReadPermissions:@[@"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if (error)
// Process error
else if (result.isCancelled)
// Handle cancellations
else
if ([result.grantedPermissions containsObject:@"email"])
NSLog(@"result is:%@",result);
[self fetchUserInfo];
[login logOut];
];
【讨论】:
非常感谢。它现在正在工作@Dharmesh。我有一个疑问 iOS 9 应用程序 facebook 登录没有使用 facebook 应用程序。现在显示一个弹出窗口。这个弹出窗口不是维护访问令牌,所以我有多个登录有什么解决办法吗?【参考方案3】: - (IBAction)facebookClick:(id)sender
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];
login = [[FBSDKLoginManager alloc] init];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithReadPermissions:@[@"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if (error)
NSLog(@"Process error");
// [login logOut];
else if (result.isCancelled)
NSLog(@"Cancelled");
// [login logOut];
else
NSLog(@"Logged in");
[self getUserInformation];
];
【讨论】:
【参考方案4】:我认为这与新的 iOS 9 url 处理方案有关
您需要在plist
的LSApplicationQueriesSchemes
密钥下添加受信任的网址
Related question
【讨论】:
嗨@Tuss 请简要解释一下?我尝试通过错误响应 facebook 登录 iOS9 设备 嗨 @Tuss 我尝试 facebook 登录 iOS 9 设备得到错误响应 Error Domain=com.facebook.sdk.login Code=308 "(null)" 我的 Appdelegate 代码返回 [[FBSDKApplicationDelegate sharedInstance] 应用程序:application openURL:url sourceApplication:sourceApplication annotation:annotation]; Info.plist 代码对于带有 xCode 8
的 iOS 10在Capabilities标签中开启您项目的钥匙串共享。
【讨论】:
以上是关于iOS 9 未登录 Facebook 登录?的主要内容,如果未能解决你的问题,请参考以下文章
在 Facebook IOS SDK 中禁用单点登录 (SSO)
Facebook 登录:无法加载 URL 此 URL 的域未包含在应用程序的域中