2011-01-24 22 views
13

¿Es posible obtener todos mis amigos me gusta? Ahora, me estoy haciendo esto por 2 pasos:Cómo obtener amigos me gusta a través de la API de Facebook

  1. Obtener toda mi lista de amigos
  2. Por iteración a los lista que estoy recibiendo todos los individuos gustos,

pero parece muy grande de procesos, Alguien tiene idea para mejorar el rendimiento de esta tarea?

Respuesta

14

Por fin lo encontré después de 2 semanas mirando Facebook documentación de la API

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

¿puedes compartir un poco más de código? – Patrioticcow

+0

qué es FB aquí. Necesito lo mismo para Android. –

+0

FB es el Javascript SDK de Facebook. [La página del SDK se encuentra aquí.] (Https://developers.facebook.com/docs/javascript) –

0

Creo que es la única manera. Miré este problema hace unas semanas. No pienses que han cambiado la API.

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

EDIT: No estoy seguro de entender muy bien lo que quieres decir ... Si usted quiere decir que desea obtener una lista de los mensajes que un usuario le gusta, lo que tiene que hacer es la siguiente:

  1. obtener todos los mensajes de amigos
  2. Comprobar si le gusta cualquiera de sus puestos
  3. obtener todos los mensajes de
  4. Comprobar si como s del cualquiera de sus/sus propios mensajes
  5. combinar los resultados

es que lo que quiere?

+0

Gracias por su respuesta. ¡Pero en realidad no puedo implementarlo de esta manera! ¿Cómo puedo obtener publicaciones que le gustan a un usuario? No puedo encontrar ninguna forma de hacerlo. Solo hay "Me gusta" en http://developers.facebook.com/docs/reference/api/user/, pero esas son páginas que le gustan al usuario, no a las publicaciones. – maxgrinev

+0

ver mis ediciones. ¿Es eso lo que quieres? –

+1

No puedo creer que haya una forma más eficiente de hacerlo. Acabo de jugar con FQL mucho y, a mi nivel de conocimiento, creo que uno realmente necesita obtener primero la lista de amigos, luego hacer una llamada extra me gusta para cada uno de los amigos. Este puede ser un proceso muy largo. ¿Es esta realmente la única manera? –

5

Usando FQL va a ser más rápido que el bucle a través de los resultados de la API de gráficos. Puede obtener la ID de las páginas que le gustan a sus amigos, pero desafortunadamente FQL no devuelve información que no sea eso (es decir, el nombre). Eche un vistazo a lo siguiente.

Esto asume que está utilizando el PHP SDK con el permiso 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)); 

El beneficio de esto es que solo hace una llamada a la API. Tendrá que hacer llamadas por separado para obtener los nombres de los amigos y otra para los detalles de la página que le gusta, pero tiene las ID con las que trabajar ahora en un enfoque directo.

Cuestiones relacionadas