Getting null value while logging to Facebook to get users email ID swift 3
我试图通过允许用户通过Facebook登录来获取用户的信息。我试图获取信息,但它返回空值。我做错什么了吗?我使用我创建的自定义登录按钮。下面是我当前的代码,我得到"无可用信息"。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @IBAction func fbLogin(_ sender: AnyObject) { let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) -> Void in if (error == nil){ let fbloginresult : FBSDKLoginManagerLoginResult = result! if fbloginresult.grantedPermissions != nil { if(fbloginresult.grantedPermissions.contains("email")) { self.getFBUserData() } }else { print("No information available") } } } } |
下面是我的fb
的Appdelegate.swift代码
AppDelegate类:UIResponder,UIApplicationDelegate {
1 2 3 4 5 6 7 8 9 10 | var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) } func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation) |
} ??
1 2 3 | func applicationDidBecomeActive(_ application: UIApplication) { FBSDKAppEvents.activateApp() } |
} ??
我终于能够使它正常工作。我不得不替换下面的函数
func应用程序(应用程序:UIApplication,openURL网址:NSURL,sourceApplication:String ?,注释:AnyObject?)-> Bool {
返回FBSDKApplicationDelegate.sharedInstance()。application(应用程序,打开:URL作为URL !, sourceApplication:sourceApplication,批注:批注)
} ??
with
1 2 3 | func application(_ app: UIApplication, open url: URL, options: [String : AnyObject] = [:]) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(app,open: url,sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as! String,annotation: options [UIApplicationOpenURLOptionsAnnotationKey]) } |
一旦我更改它,就会出现以下错误-
可选(错误域= com.facebook.sdk.login代码= 308 "(空)")
似乎钥匙扣有问题,苹果已经改变了ios10的工作方式。我引用了链接-https://stackoverflow.com/a/38799196/6652247,它起作用了。我现在可以获取用户信息。
感谢Hoang Tran ..