2015-04-12 2 views
2

Я пытаюсь получить адрес электронной почты пользователя с следующие:IOS Facebook SDK 4.0.1 получение электронной почты пользователя

fbLoginManager.logInWithReadPermissions(["email", "public_profile"], handler: { (loginResult, error) -> Void in 

       if error != nil { 
        //handle error 
       } else if loginResult.isCancelled { 
        //handle cancellation 
       } else { 
        //Logged in 
        self.loggedinUser.fbToken = FBSDKAccessToken.currentAccessToken().tokenString 

        var graphReq = FBSDKGraphRequest(graphPath: "me", parameters: nil).startWithCompletionHandler { (connection, result, error) -> Void in 
         if let user = result as? NSDictionary { 
          var email = result.objectForKey("email") as? String 
          var name = result.objectForKey("name") as? String 
          self.loggedinUser.email = email ?? nil 
          self.loggedinUser.fullName = name ?? nil 

         } 
        } 
       } 
      }) 

Но в loginResult объект электронной почты пользователя не отправляется. Любая идея, как это решить?

благодарит

+1

Я могу ошибаться, но смотреть в настройках приложения на портале разработчиков facebook - могут быть установлены некоторые настройки разрешений, которые также должны быть включены – heximal

+0

http://stackoverflow.com/questions/29484345/unable-to-get -email-id-of-logged-person-in-facebook-ios-sdk/29487484 # 29487484 –

+1

Я использовал его "logInWithReadPermissions ([" email "," public_profile "]" ..., но я до сих пор не получаю Эл. адрес. –

ответ

1

Вы должны предоставить в parameters то, что вы хотите получить:

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email"]).startWithCompletionHandler({ (connection, result, error) -> Void in 

Например, чтобы получить более одного поля:

parameters: ["fields": "id, name, email, picture.type(large)"] 
Смежные вопросы