Uzyskaj zdjęcie profilowe użytkownika według Id

123

Obecnie pracuję nad aplikacją internetową, która jest głównie oparta na graficznym interfejsie API Facebooka. Posiadam pewne dane o użytkownikach - właściwie, możliwe dostępne dane publiczne - takie jak imię i nazwisko oraz identyfikator. Wiem też, że zdjęcie profilowe jest częścią danych publicznych i zastanawiałem się, w jaki sposób będę mógł uzyskać bezpośredni link do zdjęcia profilowego użytkownika tylko za pomocą jego identyfikatora?

Z góry dziękuję


źródło

Odpowiedzi:

295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Na przykład: http://graph.facebook.com/67563683055/picture?type=square

Oprócz „kwadratu” jest też więcej rozmiarów. Zobacz dokumentację .

Zack Bartel
źródło
31
Dla każdego, kto chce mieć link do dokumentacji: developers.facebook.com/docs/graph-api/reference/user/picture
Frankie Jarrett,
33
Najlepiej spojrzeć na dokumenty, ponieważ mają też wszystkie inne opcje. Na przykład, jeśli chcesz mieć duży, kwadratowy obraz (ponieważ domyślnie kwadrat jest mały), musisz użyć https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo
2
czy istnieje sposób na zapytanie o adres URL obrazu, a nie o sam obraz? Chciałbym przesłać obraz na front-end, a nie przez serwer, jeśli to możliwe
Alexander Mills
1
Mam nadzieję, że zaoszczędzi to komuś dodatkowego kroku w znalezieniu identyfikatora profilu - findmyfbid.com
jarmerson
3
użyj redirect = 0, aby uzyskać opis JSON (w tym adres URL) zamiast samego obrazu
Ilya Denisov
123

Możesz użyć następujących adresów URL, aby uzyskać różne rozmiary obrazów profilowych. Pamiętaj, aby dodać identyfikator Facebooka do adresu URL.

Zdjęcie w dużym rozmiarze https://graph.facebook.com/ {facebookId} / picture? Type = large

Zdjęcie średniej wielkości https://graph.facebook.com/ {facebookId} / picture? Type = normal

Zdjęcie w małym rozmiarze https://graph.facebook.com/ {facebookId} / picture? Type = small

Kwadratowe zdjęcie https://graph.facebook.com/ {facebookId} / picture? Type = square

Dulitha Kumarasiri
źródło
2
W ten sposób mogłem odkryć mój własny identyfikator Facebooka: developers.facebook.com/tools/explorer/ ...
Ryan,
39

Aby uzyskać największy rozmiar obrazu

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

lub cokolwiek innego, czego potrzebujesz jako rozmiar. Z doświadczenia wynika, że ​​typ = duży nie jest największym wynikiem, jaki można uzyskać.

reyalsnogard
źródło
1
również może przekazać: graph.facebook.com { userID }? fields = picture.type (large) jest to przydatne, gdy masz coś takiego, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large) Jak wspomniano w innych odpowiedziach, możesz zamienić duże na normalne, małe, kwadratowe ...
yajnesh
Czy to nie wymaga tokena dostępu (obecnie)?
Bernoulli IT,
13

To jest dosłownie na pierwszej stronie dokumentacji Graph API .

  • /OBJECT_ID/picture zwraca przekierowanie do obrazu obiektu (w tym przypadku użytkowników)
  • /OBJECT_ID/?fields=picture zwraca adres URL obrazu

Przykłady:

<img src="https://graph.facebook.com/4/picture"/> używa przekierowania HTTP 301 do zdjęcia profilowego Zucka

https://graph.facebook.com/4?fields=picture zwraca sam adres URL

Igy
źródło
1
Niestety, nie ma go już na stronie głównej dokumentacji Graph API, jest teraz tutaj: developers.facebook.com/docs/graph-api/using-graph-api
Igy
3
NIE , nie ma go na pierwszej stronie dokumentacji Graph API. Lepiej unikaj instrukcji ograniczających czas w SO. Wiesz… rzeczy zmieniają się dość szybko w tamtych czasach…
Gianluca Ghettini
i, jak na ironię, twoja odpowiedź jest o wiele bardziej przydatna i zawiera więcej istotnych informacji niż strona graficznego interfejsu API :-)
Simon_Weaver,
6

Tutaj ten interfejs API pozwala łatwo uzyskać zdjęcia profilowe na Facebooku, Google i Twitterze

https://www.avatars.io/

Jest to interfejs API, który zwraca obraz profilu po nadaniu nazwy użytkownika dla różnych sieci społecznościowych, w tym Twittera, Facebooka, Instagrama i Gravatara. Posiada biblioteki dla iOS, Androida, Ruby, Node, PHP, Python i JavaScript.

Norielle Cruz
źródło
1
To naprawdę fantastyczne! Tylko dlatego, że SO lubi, aby linki były opisywane bardziej szczegółowo; jest to interfejs API, który zwraca obraz profilu po podaniu nazwy użytkownika dla różnych sieci społecznościowych, w tym Twittera, Facebooka, Instagrama i Gravatara. Posiada biblioteki dla iOS, Androida, Ruby, Node, PHP, Python i JavaScript. Wyjątkowe oprogramowanie. Można go znaleźć na GitHub .
Ari Cooper-Davis
3

możesz to uzyskać za pomocą tego adresu URL: otrzymasz obraz HD (maksymalny rozmiar)

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

nie zapomnij o redirect = false, bo zwróci błąd

Mahmoud Turki
źródło
2

Użyj adresu URL jako: https: //graph.facebook.com/ user_id / picture? Type = square in src tagu img. typ może być mały, duży.

Needhi Agrawal
źródło
2

Możesz użyć do tego AngularJs, jego dwukierunkowa funkcja wiązania danych zapewni rozwiązanie przy minimalnym wysiłku i mniejszym kodzie.

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

Mam nadzieję, że ta odpowiedź jest odpowiedzią na Twoje pytanie. Uwaga: Możesz również skorzystać z innej biblioteki.

Srinivas
źródło
1

Za pomocą zestawu SDK Javascript (wersja 2.12 - kwiecień 2017 r.) Można uzyskać szczegółowe informacje dotyczące żądania zdjęcia w następujący sposób:

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);
  }
});

Aby uzyskać odpowiedź JSON, ważny jest parametr redirectz wartością 0 (zero), ponieważ żądanie domyślnie przekierowuje do obrazu. Nadal możesz dodać inne parametry w tym samym adresie URL. Przykłady:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": zostanie zwrócony obraz 100x100;
  • "/" + uid + "/picture?redirect=0&type=large": zwracany jest obraz 200x200. Inne możliwe wartości typu to: small , normal , album i square .
CPHPython
źródło
1

Po prostu postępuj zgodnie z poniższym adresem URL

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

typ może być normalny, mały, średni, duży. Lub kwadratowy (jeśli chcesz uzyskać kwadratowy obraz, rozmiar kwadratu jest ograniczony do 50x50).

Rahul Gupta
źródło
2
Jeśli chcesz uzyskać kwadratowy obraz, rozmiar kwadratu jest ograniczony do 50x50.
Rahul Gupta
Aby uzyskać więcej informacji, śledź programistów Facebook Graph API developers.facebook.com/docs/graph-api/reference/v3.2/user/…
Rahul Gupta,
1

Zgodnie z aktualną najnowszą wersją interfejsu API Facebooka w wersji 3.2, dla użytkowników możesz użyć tej ogólnej metody uzyskiwania zdjęcia profilowego https://graph.facebook.com/v3.2/{user-id}/picture?type=square, którą możesz odwiedź dokumentację dotyczącą zdjęcia użytkownika tutaj . Możliwe wartości parametru typu w adresie URL to small, normal, album, large, square

W przypadku grup i stron zdjęcie profilowe nie jest dostępne bezpośrednio. Musisz je zdobyć za pomocą tokena dostępu. W przypadku grup musisz użyć tokenu dostępu użytkownika, a w przypadku stron możesz użyć zarówno tokena dostępu użytkownika, jak i tokena dostępu do strony.

Możesz pobrać zdjęcie profilowe grupy lub strony, używając ogólnego adresu URL: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Mam nadzieję, że jest to pomocne dla osób, które szukają zdjęcia w profilu strony lub grupy.

Avtar Gaur
źródło
W przypadku większości stron otrzymuję zdjęcie profilowe stron bez tokena dostępu, ale w przypadku niektórych stron zwraca obraz znaku zapytania jako odpowiedź w poniższym formacie. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Masz jakąś wskazówkę?
xyz
0

Możesz użyć następującego punktu końcowego, aby pobrać image.jfif zamiast jpg:

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

Pamiętaj, że nie będziesz w stanie zobaczyć obrazu, tylko go pobierz.

Rachan Neamprasert
źródło