Benutzerprofilbild nach ID abrufen

123

Ich arbeite jetzt an einer Webanwendung, die hauptsächlich auf Facebook Graph API basiert. Ich habe einige Daten über Benutzer - tatsächlich die möglichen verfügbaren öffentlichen Daten - wie Name und ID. Ich weiß auch, dass ein Profilbild Teil der öffentlichen Daten ist, und ich habe mich gefragt, wie ich nur unter Verwendung seiner ID einen direkten Link zu einem Profilbild eines Benutzers erhalten kann.

Danke im Voraus


quelle

Antworten:

295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Zum Beispiel: http://graph.facebook.com/67563683055/picture?type=square

Neben "Quadrat" gibt es auch weitere Größen. Siehe die Dokumente .

Zack Bartel
quelle
31
Für alle, die den Link zu den Dokumenten wünschen: developer.facebook.com/docs/graph-api/reference/user/picture
Frankie Jarrett
32
Schauen Sie sich am besten die Dokumente an, da sie auch alle anderen Optionen haben. Wenn Sie beispielsweise ein großes, quadratisches Bild wünschen (da die quadratische Standardeinstellung klein ist), müssen Sie es verwenden https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
Sudo
2
Gibt es eine Möglichkeit, nur die Bild-URL abzufragen, nicht das Bild selbst? Möchte das Bild auf dem Frontend hochladen, wenn möglich nicht über den Server
Alexander Mills
1
Hoffentlich erspart
jarmerson
3
Verwenden Sie redirect = 0, um die JSON-Beschreibung (inkl. URL) anstelle des Bildes selbst zu erhalten
Ilya Denisov
123

Sie können die folgenden URLs verwenden, um unterschiedliche Größen von Profilbildern zu erhalten. Bitte stellen Sie sicher, dass Sie der URL eine Facebook-ID hinzufügen.

Großes Foto https://graph.facebook.com/ {facebookId} / picture? Type = large

Mittelgroßes Foto https://graph.facebook.com/ {facebookId} / picture? Type = normal

Kleines Foto https://graph.facebook.com/ {facebookId} / picture? Type = small

Quadratisches Foto https://graph.facebook.com/ {facebookId} / picture? Type = square

Dulitha Kumarasiri
quelle
2
Auf diese Weise konnte ich meine eigene Facebook-
Ryan
39

Um die größte Größe des Bildes zu erhalten

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720) 

oder alles andere, was Sie als Größe benötigen. Erfahrungsgemäß ist type = large nicht das größte Ergebnis, das Sie erzielen können.

Reyalsnogard
quelle
1
kann auch übergeben werden: graph.facebook.com {userID}? fields = picture.type (groß) Dies ist nützlich, wenn Sie so etwas haben, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (groß) wie in anderen Antworten erwähnt, können Sie groß durch normal, klein, quadratisch ersetzen ...
yajnesh
Benötigt dies (heutzutage) kein Zugriffstoken?
Bernoulli IT
13

Dies befindet sich buchstäblich auf der Startseite der Graph API-Dokumentation .

  • /OBJECT_ID/picture gibt eine Umleitung zum Bild des Objekts zurück (in diesem Fall die Benutzer)
  • /OBJECT_ID/?fields=picture Gibt die URL des Bildes zurück

Beispiele:

<img src="https://graph.facebook.com/4/picture"/> verwendet eine HTTP 301-Umleitung zum Profilbild von Zuck

https://graph.facebook.com/4?fields=picture gibt die URL selbst zurück

Igy
quelle
1
Leider ist es nicht mehr auf der Homepage der Graph API-Dokumente, sondern jetzt hier: developer.facebook.com/docs/graph-api/using-graph-api
Igy
3
NEIN , es befindet sich nicht auf der Startseite der Graph API-Dokumentation. Sie sollten Zeitbeschränkungsanweisungen für SO besser vermeiden. Weißt du ... die Dinge ändern sich heutzutage ziemlich schnell ...
Gianluca Ghettini
und ironischerweise ist deine Antwort mit relevanteren Informationen viel nützlicher als die Grafik-API-Seite :-)
Simon_Weaver
6

Hier können Sie mit dieser API einfach fb-, google- und twitter-Profilbilder abrufen

https://www.avatars.io/

Es ist eine API, die das Profilbild zurückgibt, wenn ein Benutzername für eine Vielzahl von sozialen Netzwerken wie Twitter, Facebook, Instagram und Gravatar angegeben wird. Es verfügt über Bibliotheken für iOS, Android, Ruby, Node, PHP, Python und JavaScript.

Norielle Cruz
quelle
1
Das ist wirklich fantastisch! Nur weil SO es mag, wenn Links etwas detaillierter beschrieben werden; Es handelt sich um eine API, die das Profilbild zurückgibt, wenn ein Benutzername für eine Vielzahl von sozialen Netzwerken wie Twitter, Facebook, Instagram und Gravatar angegeben wird. Es verfügt über Bibliotheken für iOS, Android, Ruby, Node, PHP, Python und JavaScript. Eine außergewöhnliche Software. Es kann auf GitHub gefunden werden .
Ari Cooper-Davis
3

Sie können es mit dieser URL erhalten: Sie erhalten das Bild HD (maximale Größe)

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false

Vergessen Sie nicht, redirect = false zu verwenden, da sonst ein Fehler zurückgegeben wird

Mahmoud Turki
quelle
2

Verwenden Sie die URL als: https: //graph.facebook.com/ user_id / picture? Type = square in src des img-Tags. Typ kann klein, groß sein.

Needhi Agrawal
quelle
2

Sie können AngularJs dafür verwenden. Die Zwei-Wege-Datenbindungsfunktion wird mit minimalem Aufwand und weniger Code gelöst.

<div> <input type="text" name="" ng-model="fbid"><br/> <img src="https://graph.facebook.com/{{fbid}}/picture?type=normal"> </div>

Ich hoffe, dies beantwortet Ihre Frage. Hinweis: Sie können auch andere Bibliotheken verwenden.

Srinivas
quelle
1

Über das Javascript SDK (v2.12 - April 2017) können Sie die Details der Bildanforderung folgendermaßen abrufen :

FB.api("/" + uid + "/picture?redirect=0", function (response) {
  console.log(response);

  // prints the following:
  //data: {
  //  height: 50
  //  is_silhouette: false
  //  url: "https://lookaside.facebook.com/platform/profilepic/?asid=…&height=50&width=50&ext=…&hash…"
  //  width: 50
  //}

  if (response && !response.error) {
    // change the src attribute of img elements
    [...document.getElementsByClassName('fb-user-img')].forEach(
      i => i.src = response.data.url
    );

    // OR redirect to the URL above
    location.assign(response.data.url);
  }
});

Um die JSON-Antwort zu erhalten, ist der Parameter redirectmit 0 (Null) als Wert wichtig, da die Anforderung standardmäßig zum Bild umleitet. Sie können der gleichen URL noch weitere Parameter hinzufügen. Beispiele:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": Ein 100x100-Bild wird zurückgegeben.
  • "/" + uid + "/picture?redirect=0&type=large": Ein 200x200-Bild wird zurückgegeben. Andere mögliche Typwerte sind: klein , normal , Album und Quadrat .
CPHPython
quelle
1

Folgen Sie einfach der folgenden URL

https://graph.facebook.com/facebook_user_id/picture?type=square

Typ kann normal, klein, mittel, groß sein. Oder quadratisch (wenn Sie ein quadratisches Bild erhalten möchten, ist die quadratische Größe auf 50 x 50 begrenzt).

Rahul Gupta
quelle
2
Wenn Sie ein quadratisches Bild erhalten möchten. Die quadratische Größe ist auf 50 x 50 begrenzt.
Rahul Gupta
Weitere Informationen finden Sie unter Facebook Graph API. Developers.facebook.com/docs/graph-api/reference/v3.2/user/…
Rahul Gupta
1

Gemäß der aktuellen neuesten Facebook - API Version 3.2, für Benutzer , die Sie diese generische Methode für das Erhalten Profilbild verwenden können , ist https://graph.facebook.com/v3.2/{user-id}/picture?type=square können Sie besuchen Dokumentation für Benutzer Bild hier . Die möglichen Werte für Typparameter in URL können klein, normal, Album, groß, quadratisch sein

Für Gruppen und Seiten ist das Profilbild nicht direkt verfügbar. Sie müssen sie mit einem Zugriffstoken erhalten. Für Gruppen müssen Sie das Benutzerzugriffstoken verwenden, und für Seiten können Sie sowohl das Benutzerzugriffstoken als auch das Seitenzugriffstoken verwenden.

Sie können das Profilbild einer Gruppe oder Seite über die generische URL abrufen: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Ich hoffe, dies ist hilfreich für Leute, die nach Seiten- oder Gruppenprofilbildern suchen.

Avtar Gaur
quelle
Für die meisten Seiten erhalte ich das Seitenprofilbild ohne Zugriffstoken, aber für einige Seiten wird ein Fragezeichen als Antwort im folgenden Format zurückgegeben. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Irgendwelche Hinweise ?
XYZ
0

Sie können den folgenden Endpunkt verwenden, um die Datei image.jfif anstelle von jpg abzurufen:

https://graph.facebook.com/v3.2/{user-id}/picture

Beachten Sie, dass Sie das Bild nicht sehen können, sondern nur herunterladen.

Rachan Neamprasert
quelle