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ę


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ę .


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


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ć.


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


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.


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


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.


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.


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 .

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).


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.