Невозможно получить один большой размер для края фотографии пользователя Facebook Graph API - PullRequest
0 голосов
/ 28 мая 2018

Я использую SDK facebook для входа в систему и user_photos в приложении iOS.

Вход выполнен, и в разрешениях я добавил user_photos readPermissions.

Но когда я пытаюсь получить пользовательские фотографии, используя graphPath: me / photos с fields параметрами- id,picture, возвращается только самый маленький размер изображения.Я пытался использовать picture.type(large) или picture.width(640), но ничего не работает.

Я попытался использовать параметр images для fields, он возвращает все размеры для узла Фото.

Я даже пытался использовать ребро <OBJECT_ID>/picture с параметром fields picture, но это дает facebook sdk error(error code 6).

Как получить пользовательские фотографии только с помощью одной ссылки на фотографиюк большому размеру?

Я использую последнюю версию SDK.

1 Ответ

0 голосов
/ 28 мая 2018

Swift - попробуйте это

@IBAction func facebookLoginButtonTapped(_ sender: UIButton) {
            let fbLoginManager: FBSDKLoginManager = FBSDKLoginManager()
            fbLoginManager.logIn(withReadPermissions: ["email", "pages_show_list"], from: self) { (result, error) in
                if (error == nil){
                    let fbLoginResult: FBSDKLoginManagerLoginResult = result!
                    if fbLoginResult.grantedPermissions != nil {
                        if(fbLoginResult.grantedPermissions.contains("email")){
                            self.facebookLogin()
                        }
                    }
                }
            }
        }
    }

    func facebookLogin() {
        if((FBSDKAccessToken.current()) != nil) {
            FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id, name, first_name, last_name, picture.type(large), email "]).start(completionHandler: { (connection, result, error) in
                if result == nil {
                }
                else{
                    self.userResults = result as! [String : AnyObject]
                    self.email = (self.userResults["email"] as? String) ?? ""
                    if (self.email != "") {
                        let url = URL(string: "http://graph.facebook.com/\(YOURE FACEBOOK ID)/picture?type=large")!
                        let session = URLSession(configuration: .default)
                        let downloadPicTask = session.dataTask(with: url) { (data, response, error) in
                            // The download has finished.
                            if let e = error {
                                print("Error downloading cat picture: \(e)")
                            } else {
                                if let res = response as? HTTPURLResponse {
                                    print("Downloaded cat picture with response code \(res.statusCode)")
                                    if let imageData = data {
                                        let image: UIImage = UIImage(data: imageData)!
                                    } else {
                                        print("Couldn't get image: Image is nil")
                                    }
                                } else {
                                    print("Couldn't get response code for some reason")
                                }
                            }
                        }
                        downloadPicTask.resume()
                    }
                    else{
                        Utility.showAlert("Login Faild", message: error?.localizedDescription, viewController: self)
                    }
                }
            })
        }
    }
...