2012-03-22 14 views
11

Sto ottenendo il mio muro di pagina con il grafico aperto. E quando qualcuno ha postato una foto, ho capito sulla JSONottenere foto ad alta risoluzione che sono state pubblicate su un muro di una pagina/feed

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

Il problema è che il collegamento dell'immagine è una copia a bassa risoluzione dell'immagine.

Come posso ottenere l'URL dell'intera immagine?

Grazie !!

Miglior

Geoffroy

+0

Avete la soluzione, la risposta di seguito non funziona. –

risposta

17

È possibile ottenere la versione diversa del photo interrogando Graph API con il suo object_id (non foto post_id che è id nei risultati che hai fornito).

Una volta che si richiede il photo da oggetto id si otterrà serie di images con URL e dimensioni:

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

Fantastico! Esso funziona magicamente! Grazie molto! – geoffroy

+0

Molte grazie ... Perfetto – Superdev

+0

Grazie mille.Ottima risposta :) – Supertecnoboff

2

utilizzare questo codice. Il suo lavoro per me e per ottenere Clear Image

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

Potrebbe essere un po 'hacky, ma funziona;) – stealthcopter

+1

Da me funziona a volte e talvolta no .... perché Facebook ha fatto ottenere un'immagine così stupida –

+3

Sembra non funzionare più –

4

Puoi farlo dalla lista messaggi principale ora utilizzando

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

Se gli allegati non funziona, provate full_picture - ma che ha appena dato l'immagine 100x100 anche per me

Allegati restituisce un hash dei dati con una versione 640x480 dell'immagine almeno (non so cosa la mia orig dimensioni foto era.)

5

Tutto quello che dovete fare è:

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

Questa dovrebbe essere la risposta accettata . L'unica cosa che funziona adesso. –

3

Anche se richiede un foto dal suo object_id restituirà una matrice di immagini con dimensioni diverse, in alcuni casi questo approccio richiederebbe una chiamata aggiuntiva all'API di Facebook.

Un approccio più semplice è aggiungere full_picture all'elenco di parametri, che estrarrà l'immagine con la risoluzione più alta associata al post.

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

Ad esempio, se si desidera estrarre tutti i messaggi di una pagina di Facebook nei giorni scorsi X, con l'approccio object_id c'è necessario chiamare le API di 3 volte:

  1. Per ottenere le informazioni sulla pagina.
  2. Per estrarre l'elenco di post e ottenere object_id per ogni post.
  3. Per ogni object_id, per recuperare l'elenco di immagini a risoluzione più alta.
Problemi correlati