ios - Facebook SDK 4.7 登录错误处理

标签 ios xcode facebook swift fbsdk

我将 FBSDK 4.7 添加到我的 swift 应用程序,当它打开 safari View Controller 进行登录时,我尝试点击“完成”而不在电子邮件/密码字段中输入任何内容,应用程序中断。它吐出 “ fatal error :在展开可选值时意外发现 nil”

我该如何处理这个错误?

当前登录密码:

if let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager(){
fbLoginManager.logInWithReadPermissions(["email"],fromViewController:self,
handler:{(result:FBSDKLoginManagerLoginResult!,error:NSError!) -> Void in
if (error == nil){
            let fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.contains("email"))
            {
                print("Logged in successfully")
                self.getFBUserData()
                //fbLoginManager.logOut()
            }
        }
        else{
            print("HELPPPPPPPPPP")
        }   
     })
   }

最佳答案

无需分配变量类型 (result, error) :

这是使用 Facebook 4.7 SDK 的工作代码 | swift 2 | Xcode 7.

@IBAction func btnFBLoginPressed(sender: AnyObject) {
    let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager.loginBehavior = FBSDKLoginBehavior.Web
    fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self, handler: { (result, error) -> Void in
        if (error == nil){
            let fbloginresult : FBSDKLoginManagerLoginResult = result
            if fbloginresult.grantedPermissions != nil { //Here we have to check that the set contains value or not
                if(fbloginresult.grantedPermissions.contains("email"))
                {
                    self.getFBUserData()
                    fbLoginManager.logOut()
                }
            }
        }
    })
}

func getFBUserData(){
    if((FBSDKAccessToken.currentAccessToken()) != nil){
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
            if (error == nil){
                print(result)
            }
        })
    }
}

我们必须检查 grantedPermissionsSet 是否为 nil

if fbloginresult.grantedPermissions != nil { //Here we have to check that the set contains value or not

关于ios - Facebook SDK 4.7 登录错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208026/

相关文章:

ios - 你能帮我吗,如何在 settings.bundle 中插入占位符?

ios - 基于图像大小的单元格行高

IOS Safari 支持插件吗?

ios - 如何构建由 iOS 中现有控件组成的自定义控件?

ios - Facebook 登录错误无效范围 : users_friends

ios - 将三角形作为 subview 绘制到表格单元格的右角

c - C 和 Xcode 中的内存泄漏检测

ios - 我可以在 XCode 中更改 Sprite 的大小吗? ( swift )

ios - 使用 iOS5 和 iOS6 的 Facebook

javascript - 检查 Facebook session 加载情况