Facebook Graph API: uzyskaj większe zdjęcia w jednym żądaniu

Obecnie używam Graph API Explorer do wykonywania testów. To dobre narzędzie.

Chcę uzyskać listę znajomych użytkownika, z imionami, identyfikatorami i zdjęciami znajomych. Więc wpisuję:

https://graph.facebook.com/me/friends?fields=id,picture,name

Ale zdjęcie ma tylko 50x50, a ja chciałbym mieć większe w tej prośbie.

Czy to możliwe ?
Author: Kara, 2012-05-18

17 answers

Nie musisz jednak wyciągać atrybutu 'picture'. jest o wiele wygodniejszy sposób, jedyne czego potrzebujesz to userid, zobacz przykład poniżej;

Https://graph.facebook.com/user_id/picture?type=large

P. S. Typ określa żądany rozmiar

Plz należy pamiętać, że używając tokena z podstawowymi uprawnieniami,/me / friends zwróci listę znajomych tylko z atrybutami id+name

 60
Author: guleryuz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-18 12:14:01

Jak opisano w ten błąd na Facebook ' u, Możesz również poprosić o określone rozmiary obrazów teraz za pomocą nowej składni API " field expansion".

Like so:

https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)
 175
Author: thaddeusmt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-04 18:53:03

Najlepszym sposobem na zdobycie wszystkich znajomych (którzy również używają aplikacji, oczywiście) z poprawnymi rozmiarami zdjęć jest użycie rozszerzenie pola , albo z jednym ze znaczników rozmiaru (kwadrat, mały, normalny, duży):

/me/friends?fields=picture.type(large)

(edit: to już nie działa)

...możesz też podać szerokość / wysokość:

me/friends?fields=picture.width(100).height(100)

Btw, możesz też napisać tak:

me?fields=friends{picture.type(large)}
 66
Author: luschn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-27 07:52:02

Zmień tablicę pól id,name,picture na id,name,picture.type(large)

https://graph.facebook.com/v2.8/me?fields=id,name,picture.type(large)&access_token=<the_token>

Wynik:

{
   "id": "130716224073524",
   "name": "Julian Mann",
   "picture": {
      "data": {
         "is_silhouette": false,
         "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15032818_133926070419206_3681208703790460208_n.jpg?oh=a288898d87420cdc7ed8db5602bbb520&oe=58CB5D16"
      }
   }
}
 29
Author: Julian Mann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 17:02:03

Dokładnie zbadałem Graph API Explorer i w końcu znalazłem full_picture

https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture

P. S. zauważyłem, że full_picture nie zawsze zapewnia Pełny rozmiar obrazu chcę. "attachments" does

https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments
 20
Author: Jonghee Park,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-04 00:52:47

Możesz również spróbować uzyskać obraz, jeśli chcesz go na podstawie wysokości lub szerokości

Https://graph.facebook.com/user_id/picture?height=

LUB

Https://graph.facebook.com/user_id/picture?width=

Wartości są domyślnie w pikselach, wystarczy podać wartość int

 18
Author: Swaprks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-30 12:04:57

Możesz ustawić rozmiar obrazu w pikselach, tak:

https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500)

W podobny sposób można użyć parametru type

{user-id}/?fields=name,picture.type(large)

Z dokumentacji

Typ enum{mały, normalny, album, duży, kwadrat}

 18
Author: Agu Dondo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-24 14:57:02

Hum... Chyba znalazłem rozwiązanie.

W rzeczywistości, in może po prostu zażądać

https://graph.facebook.com/me/friends?fields=id,name

Według http://developers.facebook.com/docs/reference/api/ (sekcja "Zdjęcia"), url zdjęć profilu może być zbudowany z id użytkownika

Na przykład, zakładając, że ID użytkownika jest w $id:

"http://graph.facebook.com/$id/picture?type=square"
"http://graph.facebook.com/$id/picture?type=small"
"http://graph.facebook.com/$id/picture?type=normal"
"http://graph.facebook.com/$id/picture?type=large"

Ale to nie jest ostateczny URL obrazka, więc jeśli ktoś ma lepsze rozwiązanie, chętnie się dowiem:)

 9
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-18 12:14:30

Od v2.7, /<picture-id>?fields=images wyświetli listę o różnej wielkości obrazów, pierwszym elementem jest pełny rozmiar obrazu.

Nie znam żadnego rozwiązania dla wielu obrazów naraz.
 2
Author: maxbellec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 15:39:40

W obrazkach URL znaleziony w odpowiedziach grafu (" http://photos-c.ak.fbcdn.net / " ones), just replace the default "_s.jpg" przez "_n.jpg" (? normalny rozmiar) lub "_b.jpg" (? duży rozmiar) lub "_t.jpg" (miniaturka).

Hacakable Url / REST API sprawiają, że sieć jest lepsza.

 1
Author: Ronan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-11 15:03:58

Rest-użytkownicy fb (kwadratowy obraz, większy res.): Connection myFriends = fbClient.fetchConnection ("ja/znajomi", User.Klasa, parametr.with("fields", " public_profile, email, first_name, last_name, gender, picture.Szerokość (100)wysokość(100)"));

 1
Author: sigi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 11:51:00

Myślę, że od teraz jedynym sposobem na uzyskanie dużych zdjęć znajomych jest użycie FQL. Po pierwsze, musisz pobrać listę znajomych:

Https://graph.facebook.com/me/friends

Następnie przeanalizuj tę listę i wyodrębnij wszystkich znajomych ids. Gdy już to masz, po prostu wykonaj następujące zapytanie FQL:

SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200

200 Oto tylko przykładowy rozmiar, możesz wprowadzić wszystko. Powinieneś otrzymać następującą odpowiedź:

{
  "data": [
    {
      "id": ..., 
      "url": "https://fbcdn-profile-a.akamaihd.net/..."
    }, 
    {
      "id": ..., 
      "url": "https://fbcdn-profile-a.akamaihd.net/..."
    }
  ]
}

Z każdym adresem URL jest odnośnikiem do 200x200px obraz.

 0
Author: Paweł Gościcki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-16 13:20:16

Mam ten sam problem, ale próbowałem rozwiązać ten problem. zwraca duży obraz. Nie jest to idealne rozwiązanie, ale możesz spróbować tego.

Https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX

 0
Author: Ajay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-15 07:09:14

Spróbuj zmienić rozmiar obrazu, zmieniając rozmiar piksela z adresu url w każdym obiekcie json w następujący sposób:

Na przykład zmieniam s480x480 na s720x720

Przed : https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s480x480/10454308_773207849398282_283493808478577207_n.jpg

Po : https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s720x720/10454308_773207849398282_283493808478577207_n.jpg

 0
Author: E_X,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-28 21:28:30

Js styled variant. Wystarczy ustawić ogromną dużą szerokość obrazu, a otrzymasz największy wariant.

FB.api(
  '/' + userId,
  {fields: 'picture.width(2048)'},
  function (response) {
    if (response && !response.error) {
      console.log(response.picture.data.url);
    }
  }
);
 0
Author: Dzmitry Vasilevsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-30 09:08:56

Możesz użyć full_picture zamiast picture key, aby uzyskać pełny rozmiar obrazu.

 0
Author: Khalil ur Rehman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-26 13:22:13

Możesz określić szerokość i wysokość w zapytaniu do interfejsu API Facebook graph: http://graph.facebook.com/user_id/picture?width=500&heigth=500

 0
Author: Alexey Kislitsin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-18 09:53:48