2012-03-22 15 views
11

yo estoy haciendo mi pared de la página con el gráfico abierta. Y cuando alguien publicó una foto, lo entiendo en el JSONobtener fotos de alta resolución que se publicaron en una pared página/pienso

{ 
    "id": "27888702146_10150369820322147", 
    "from": { 
     "name": "brocoli", 
     "category": "Record label", 
     "id": "27888702146" 
    }, 
    "message": "Vincent Epplay/David Fenech/Jac Berrocal \u00e0 Beaubourg ce soir, 19h, gratos.", 
    "picture": "http://photos-f.ak.fbcdn.net/hphotos-ak-snc7/305819_10150369820292147_27888702146_8255527_583491475_s.jpg", 
    "link": "https://www.facebook.com/photo.php?fbid=10150369820292147&set=a.386279807146.165840.27888702146&type=1", 
    "icon": "http://static.ak.fbcdn.net/rsrc.php/v1/yz/r/StEh3RhPvjk.gif", 
    "type": "photo", 
    "object_id": "10150369820292147", 
    "created_time": "2011-10-16T08:22:21+0000", 
    "updated_time": "2011-10-16T08:22:21+0000", 
    "likes": { 
     "data": [ 
      { 
       "name": "brocoli", 
       "category": "Record label", 
       "id": "27888702146" 
      }, 
      { 
       "name": "Agathe Morier", 
       "id": "601668526" 
      } 
     ], 
     "count": 2 
    }, 
    "comments": { 
     "count": 0 
    }, 
    "is_published": true 
    } 

El problema es que el enlace de la imagen es una copia de baja resolución de la imagen.

¿Cómo puedo obtener la URL de la imagen completa?

Gracias!

Mejor

Geoffroy

+0

¿Usted se ha la solución, la respuesta de abajo no funciona. –

Respuesta

17

Puede obtener versión diferente del photo mediante la consulta de API de gráficos con su object_id (no foto post_id que es id en los resultados que nos ha facilitado).

Una vez que se le solicita la photo por objeto id obtendrá variedad de images con direcciones URL y dimensiones:

http://graph.facebook.com/10150369820292147?fields=images 
+0

¡Fantástico! ¡Funciona a las mil maravillas! ¡Muchas gracias! – geoffroy

+0

Muchas gracias ... Perfecto – Superdev

+0

Muchas gracias.Gran respuesta :) – Supertecnoboff

2

utilizar este código. Su trabajo para mí y obtener imagen clara

String PICTURE_URL; 

String getPicture = hashMap.get("picture"); 
     if (getPicture.contains("_t.")) { 
      PICTURE_URL = getPicture.replaceAll("_t.", "_n."); 
     } else if (getPicture.contains("_a.")) { 
      PICTURE_URL = getPicture.replaceAll("_a.", "_n."); 
     } else if (getPicture.contains("_s.")) { 
      PICTURE_URL = getPicture.replaceAll("_s.", "_n."); 
     } else if (getPicture.contains("_q.")) {    
      PICTURE_URL = getPicture.replaceAll("_q.", "_n."); 
     } 
     url=new URL(PICTURE_URL); 
     Bitmap bitmap=BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
     ((ImageView)view.findViewById(R.id.imageView_FullImage)).setImageBitmap(bitmap); 
+0

Puede ser un poco hacky, pero funciona;) – stealthcopter

+1

Por mí funciona a veces y a veces no ... ¿por qué Facebook hizo conseguir una imagen tan estúpida –

+3

Parece que no funciona más –

4

Usted puede hacer esto de la lista principal de mensajes usando ahora

/v2.3/105753476132681/posts?limit=5&fields=likes.summary(true),comments.summary(true), attachments 

Si los archivos adjuntos no funciona, intente full_picture - pero que acaba de dar a la imagen de 100x100 para mí también.

adjuntos devuelve un hash de los datos con una versión de 640x480 de la imagen por lo menos (no estoy seguro cuál era mi orig tamaño de la foto.)

5

Todo lo que necesita hacer es:

http://graph.facebook.com/me?fields=picture.height(961) 
// replace 961 with your required height which u want 
+1

Esta debería ser la respuesta aceptada . Lo único que funciona en este momento. –

3

Aunque solicitando una foto por su object_id devolverá una matriz de imágenes con diferentes dimensiones, en algunos casos este enfoque requeriría una llamada adicional a la API de Facebook.

Un enfoque más sencillo es añadir full_picture a su lista de parámetros, lo que va a extraer la imagen de alta resolución asociado con el puesto.

/v2.2/6275848869/posts?fields=full_picture 

Por ejemplo, si desea extraer todos los mensajes de una página de Facebook en los días pasados ​​X, con el enfoque object_id que había necesidad de llamar a las API de 3 veces:

  1. Para obtener la información de la página.
  2. para extraer la lista de puestos y obtener los object_id para cada puesto.
  3. Para cada object_id, para recuperar la lista de imágenes de mayor resolución.
Cuestiones relacionadas