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 处理方案有关

您需要在plistLSApplicationQueriesSchemes 密钥下添加受信任的网址

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 代码 LSApplicationQueriesSchemesfbapifb-messenger-apifbauth2fbshareextension 我不知道我错过了什么。【参考方案5】:

对于带有 xCode 8

iOS 10

Capabilities标签中开启您项目的钥匙串共享

【讨论】:

以上是关于iOS 9 未登录 Facebook 登录?的主要内容,如果未能解决你的问题,请参考以下文章

在 Facebook IOS SDK 中禁用单点登录 (SSO)

Facebook 登录:无法加载 URL 此 URL 的域未包含在应用程序的域中

iOS 8.3 Facebook 错误未登录

更新到 IOS 9 后无法登录 Facebook

Facebook 请求配置文件 Graph API 无法在 iOS 7 本机 facebook 上未登录

Titanium Facebook 模块未在 iOS 7 上完成登录