2016-03-30 5 views
0

Ich habe versucht, mehrere Möglichkeiten, um größere Bilder von Facebook Graph API zu bekommen, aber ich war nicht erfolgreich.Wie kann ich ein Bild aus Facebook Album mit Graph API iOS vergrößern?

  1. Ich weiß nicht wirklich, wie diese Parameter Arbeit. Also erklärst du mir das auch?
  2. Auch ich muss wissen, wie man die größeren Bilder ergreift. Ich bekomme zuerst das Album und dann Bilder ID und dann hole ich das Bild des Albums.
  3. Was ist die beste Bildgröße für iPhone 6?

    let parameters = ["fields": "picture.height(400).width(200)"] 
    FBSDKGraphRequest(graphPath: "/{picture-id}", parameters: parametes, HTTPMethod: "GET") 
    

Antwort

0

Sie können Graph-API verwenden, um unterschiedliche Bildgrößen zu erhalten. Sie müssen Bild-ID haben. Sie fordern es so:?

/{Bild-ID} Felder = Breite, Höhe, Bilder

Da obige Abfrage JSON-Daten zurückgibt. In diesen Daten "Bilder" enthält verschiedene Größen.

0

Wenn Sie bereits die Benutzer-ID haben, und sie haben entsprechende Erlaubnis gegeben, können Sie tun:

let imageUrl = NSURL(string: "https://graph.facebook.com/\(userId)/picture?type=large") 
    if let data = NSData(contentsOfURL: imageUrl!) { 
     let profilePicture = UIImage(data: data) 
    } 
} 

Sie können auch eine der ENUM-Werte tun: klein, normal, Album , groß, quadratisch wie erklärt here. Besser noch, Sie können AFNetworking verwenden, um das Bild im Hintergrund mit einem Platzhalterbild zu laden, das Caching und alles für Sie übernimmt. Weitere Details finden Sie unter here, speziell setImageWithURL.

+0

Oh das ist eine gute nützliche Information. Vielen Dank. Kannst du mehr über Parameter erklären? Und ich suche ein größeres Album? – user2884707bond

0

Von der Anmeldung oder durch die Grund Graph Anfrage mit mir machen Sie Benutzer-ID und von diesem Benutzer-ID erhalten können, können Sie versuchen, diese

Sie mögen dieses versuchen: Für

let fbRequest = FBSDKGraphRequest(graphPath:"/{user-id}/picture?redirect=false&type=large", parameters: nil); 
        fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in 
         if error == nil { 

          print("Result is : \(result)") 
          /* this will return the data of the image which you can use with imageview with data method { 
           "data": "ProfilePictureSource", 
           "paging": {} 
          }*/ 

         } else { 

          println("Error Getting Friends \(error)"); 

         } 
      } 

die Felder, die Sie picture.height and picture.width haben werden passieren verwendet, um das Bild zu bestimmen, mit der

in der Antwort an Sie ist, zurückkehren Sie beiden Arten von Größe Referenz verwenden können:

Vordefinierte Größen: klein, normal, groß, quadratisch.
Benutzerdefinierte Größe: die Breite und Höhe des Bildes geben Sie

wollen

Für weitere Informationen Sie die Facebook-doc überprüfen: Facebook doc:User Profile

+0

Vielen Dank dafür, aber ich suche Album Bild (größer). Ich verwende die Album-ID und dann die Bild-ID. – user2884707bond

1

Wenn das Bild, das Sie mit picture?type=large bekommen nicht groß genug ist, schlage ich vor Sie versuchen, mit picture?width=9999 zum Beispiel.

würde der Code sein:

let requestPicture = FBSDKGraphRequest(graphPath: "{user_id}/picture?width=9999&redirect=false", parameters: nil, HTTPMethod: "GET") 

This SO Thread zu Ihnen in Bezug auf Parameter nützlich sein können.

+0

Danke, ich kann nicht glauben, dass das große Bild 200x200 ist. Ich glaube nicht, dass irgendjemand das so groß bezeichnen würde. – robertmylne

Verwandte Themen