2011-01-24 10 views
13

E 'possibile ottenere tutti i miei amici mi piace ?? Ora, sto ottenendo questo da 2 passi:Come ottenere amici come tramite l'API di Facebook

  1. Ottenere tutta la mia lista amici
  2. Iterando coloro elenco Sto ricevendo tutti gli individui Mi piace,

ma sembra molto grande processo, qualcuno ha idea di migliorare le prestazioni per questo compito?

risposta

14

Finalmente ho trovato che dopo 2 settimane guardando Facebook API documentazione

FB.api("/likes?ids=533856945,841978743") 

FB.api("me/friends",{ 
    fields:'id', 
    limit:10 
},function(res){ 
    var l='' 
    $.each(res.data,function(idx,val){ 
    l=l+val.id+(idx<res.data.length-1?',':'') 
    }) 
    FB.api("likes?ids="+l,function(res){ 
     console.log(res); 
    }) 
}) 
+0

puoi condividere altro codice? – Patrioticcow

+0

cos'è FB qui. ho bisogno dello stesso per Android. –

+0

FB è il javascript Facebook SDK. [La pagina dell'SDK si trova qui.] (Https://developers.facebook.com/docs/javascript) –

0

Credo che sia l'unico modo. Ho visto questo problema alcune settimane fa. Non pensare di aver cambiato l'API.

http://developers.facebook.com/docs/reference/api/

EDIT: io non sono sicuro di aver capito abbastanza bene quello che vuoi dire ... Se vuoi dire che si desidera ottenere un elenco dei messaggi che un utente vuole, quello che hai da fare è questo:

  1. ottenere tutti i messaggi di amici
  2. Verificare se calibro qualsiasi dei loro messaggi
  3. ottenere tutti i messaggi di
  4. Verificare se come s nessuna delle sue/suoi propri post
  5. combinare i risultati

è che ciò che si vuole?

+0

Grazie per la risposta. Ma in realtà non posso implementare nemmeno in questo modo! Come posso ottenere post piacevoli a un utente? Non riesco a trovare alcun modo per farlo. Ci sono solo "Mi piace" in http://developers.facebook.com/docs/reference/api/user/ ma quelli sono pagine che piacciono agli utenti, non i post. – maxgrinev

+0

vedi le mie modifiche. E 'questo quello che vuoi? –

+1

Non riesco a credere che ci sia un modo più efficiente per farlo. Ho appena giocato con FQL e, a mio livello di conoscenza, credo che sia necessario prima ottenere l'elenco degli amici, quindi fare un call di tipo extra per ciascuno degli amici. Questo può essere un processo molto lungo. È davvero l'unico modo? –

5

Utilizzando FQL sta per essere più veloce di loop attraverso i risultati Graph API. Puoi ottenere l'ID delle pagine che piacciono ai tuoi amici, ma sfortunatamente FQL non restituisce informazioni diverse da quella (cioè il nome). Dai un'occhiata a quanto segue.

Si presume che si stia utilizzando l'SDK PHP con l'autorizzazione friends_likes.

// hold on to your user ID 
$user_id = $facebook->getUser(); 

// query your friend's likes based on their ID 
$query = "SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $user_id)"; 
$result = $fb->api(array(
    'method' => 'fql.query', 
    'query' => $query, 
)); 

// optionally group the results by each friend ID 
function arraySort($input, $sortkey){ 
    foreach ($input as $key => $val) { 
    $output[ $val [ $sortkey ] ][] = $val; 
    } 
    return $output; 
} 
$friendLikes = arraySort($result,'uid'); 

// output the results 
echo sprintf('<pre>%s</pre>', print_r($friendLikes,TRUE)); 

Il vantaggio di questo è che si effettua una sola chiamata API. Dovrai effettuare chiamate separate per ottenere i nomi degli amici e un altro per i dettagli della pagina piaciuti, ma hai gli ID con cui lavorare ora con un approccio diretto.

Problemi correlati