Как получить profile_picture и friends_lists из Facebook в iOS (Swift4)? - PullRequest
0 голосов
/ 28 ноября 2018

Я работаю над приложением для iOS, и мне нужно получить список друзей пользователей из Facebook, а также изображение профиля.Однако я могу войти в систему без проблем, но мне все еще нужны эти две части информации. Это мой код:

@IBAction func loginFBAction(_ sender: UIButton) {
    let fbLoginManager:FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) in
        if error != nil {
            let fbLoginresult:FBSDKLoginManagerLoginResult = result!
            if(fbLoginresult.grantedPermissions.contains("email"))
            {
                print(fbLoginresult)
                self.getFBUserData()
                fbLoginManager.logOut()
            }
            print("Process error")
        }
        else if (result?.isCancelled)! {
            print("Cancelled")
        }
        else{
            print("Logged in")

 func getFBUserData() {
    if((FBSDKAccessToken.current()) != nil){
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void in
            if (error == nil){
                //everything works print the user data
                print(result as Any)
            }})
    }
}

1 Ответ

0 голосов
/ 28 ноября 2018

Ваш код не работает, потому что вы звоните getFBUserData в неправильном месте.

В fbLoginManager.logIn вы проверяете, если ошибка не равна нулю - это значит, что Facebook SDK возвращает ошибку при входе в систему.И в вашем коде вы хотите получить пользовательские данные, если у вас есть ошибка.Поэтому, поскольку у вас нет ошибки и пользователь успешно вошел в систему, этот код не выполняется.

Сделайте этот звонок после print("Logged in"), и он должен работать.

...