from example all facebook facebook-graph-api

example - get photos from facebook api



Facebook Graph API: obtenga imágenes más grandes en una sola solicitud (17)

Actualmente estoy usando Graph API Explorer para hacer algunas pruebas. Esa es una buena herramienta.

Quiero obtener la lista de amigos del usuario, con nombres de amigos, identificaciones e imágenes. Entonces escribo:

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

Pero la imagen es solo de 50x50, y me gustaría una más grande en esta solicitud.

Es posible ?


Cambiar la matriz de id,name,picture de los campos id,name,picture a id,name,picture.type(large)

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

Resultado:

{ "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" } } }


Como se describe en este error en Facebook, también puede solicitar tamaños de imagen específicos ahora a través de la nueva sintaxis de " expansión de campo " de la API.

Al igual que:

https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)


Creo que a partir de ahora la única forma de obtener imágenes grandes de amigos es usar FQL. Primero, necesitas buscar una lista de amigos:

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

Luego analiza esta lista y extrae todos los ids amigos. Cuando tenga eso, solo ejecute la siguiente consulta FQL:

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

200 aquí es solo un tamaño ejemplar, puede ingresar cualquier cosa. Deberías obtener la siguiente respuesta:

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

Con cada url es el enlace a una imagen de 200x200px.


Desde v2.7 , /<picture-id>?fields=images le dará una lista con diferentes tamaños de imágenes, el primer elemento es la imagen de tamaño completo.

No sé de ninguna solución para múltiples imágenes a la vez.


En las imágenes URL que se encuentran en las respuestas del Gráfico (las " http://photos-c.ak.fbcdn.net/ "), simplemente reemplace el valor predeterminado "_s.jpg" por "_n.jpg" ("tamaño normal") o "_b.jpg" ("tamaño grande") o "_t.jpg" (miniatura).

URL Hacakable / API REST mejoran la Web.


Hum ... Creo que encontré una solución.

De hecho, en solo puedo solicitar

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

Según http://developers.facebook.com/docs/reference/api/ (sección "Imágenes"), la url de las fotos del perfil se puede compilar con la identificación del usuario

Por ejemplo, suponiendo que el ID de usuario está en $ 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"

Pero no es la URL de la imagen final, así que si alguien tiene una mejor solución, me alegraría saber :)


Investigué Graph API Explorer extensamente y finalmente encontré full_picture

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

PD. Noté que full_picture no siempre proporcionará la imagen a tamaño completo que quiero. ''archivos adjuntos'' no

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


JS estilo variante. Simplemente establece un ancho enorme de imagen grande y obtendrás la variante más grande.

FB.api( ''/'' + userId, {fields: ''picture.width(2048)''}, function (response) { if (response && !response.error) { console.log(response.picture.data.url); } } );


La mejor forma de hacer que todos los amigos (que también usan la aplicación, por supuesto) con tamaños de imagen correctos es usar la expansión de campo , ya sea con una de las etiquetas de tamaño (cuadrado, pequeño, normal, grande):

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

(editar: esto ya no funciona)

... o puede especificar el ancho / alto:

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

Por cierto, también puedes escribirlo así:

me?fields=friends{picture.type(large)}


Puede especificar width & heigth en su solicitud a la API de gráficos de Facebook: http://graph.facebook.com/user_id/picture?width=500&heigth=500


Puede establecer el tamaño de la imagen en píxeles, como este:

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


Puede usar full_picture en lugar de la tecla de imagen para obtener una imagen de tamaño completo.





sin embargo, no necesita tirar del atributo ''imagen''. hay una manera mucho más conveniente, lo único que necesita es userid, vea el ejemplo a continuación;

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

El tipo de ps define el tamaño que desea

Por favor tenga en cuenta que al usar token con permisos básicos, / me / friends devolverá la lista de amigos solo con los atributos id + name


usuarios rest-fb (imagen cuadrada, res más grande): Conexión myFriends = fbClient.fetchConnection ("me / friends", User.class, Parameter.with ("fields", "public_profile, email, first_name, last_name, gender, picture .width (100) .height (100) "));