无法在Swift中从Facebook获取电子邮件

时间:2015-11-04 19:01:46

标签: swift facebook-login facebook-sdk-4.0

编辑:这个问题的问题有点傻。和answer一样,问题是我没有给出我想要的参数。

我再也无法忍受了:)可能是什么问题?

    func returnUserData()
{
    let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
    graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

        if ((error) != nil)
        {
            // Process error
            print("Error: \(error)")
        }
        else
        {
            print("fetched user: \(result)")
            let userName : NSString = result.valueForKey("name") as! NSString
            print("User Name is: \(userName)")
            let userEmail : NSString = result.valueForKey("email") as! NSString
            print("User Email is: \(userEmail)")
        }
    })
}

我这样称呼函数:

    func loginButton(loginButton: FBSDKLoginButton!,
    didCompleteWithResult result: FBSDKLoginManagerLoginResult!,
    error: NSError!) {
        print("User Logged In")

        if ((error) != nil)
        {
            // Process error
        } else if result.isCancelled {
            // Handle cancellations
        } else {
            // If you ask for multiple permissions at once, you
            // should check if specific permissions missing
            if result.grantedPermissions.contains("email")
            {
                // Do work
                returnUserData()
            }
        }
}

我收到错误:

enter image description here

我的问题是致命错误。但是,我正在等待输出的第2行和第3行的注释。因为,我每次都会得到此输出,但应用程序运行正常。

1 个答案:

答案 0 :(得分:1)

您必须指定请求的参数。

let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "first_name, last_name, email"])