2011-06-30 8 views
12

Estoy tratando de obtener TODOS los gustos de un usuario con FQL. Lo siguiente es mi investigación que incluye lo que he intentado y los problemas con cada intento.Obtenga todos los "me gusta" de usuario (todos ellos) con FQL

1) El método más simple sería consultar la tabla en el uid. Así que esto devuelve 57 (para mí) me gusta en la transmisión de otra persona.

SELECT object_id, post_id, user_id 
FROM like 
WHERE user_id = me() 

XML es el siguiente (nótese la ausencia inexplicable de post_id)

<like> 
    <object_id>10150695050005313</object_id> 
    <post_id></post_id> 
    <user_id>xxxxxxxxxxx</user_id> 
</like> 

Lo anterior parece un paso lógico, pero Facebook doesn't index the user_id field por lo que no se puede utilizar el siguiente código para obtener más detalles. Este código no funciona.

SELECT post_id, message 
FROM stream 
WHERE post_id IN (
    SELECT object_id, post_id, user_id 
    FROM like 
    WHERE user_id = me() 
) 

2) Utilizando el API de gráficos:/me/le gusta/recupera la información en 95 páginas de fans, pero no a partir de fotos, vídeos, enlaces o contenido sin conexión. La url completa es: https://graph.facebook.com/me/likes?access_token=

Por ejemplo:

{ 
"data": [ 
    { 
    "name": "BStU", 
    "category": "Organization", 
    "id": "136978696319967", 
    "created_time": "2011-06-29T12:09:17+0000" 
    }, 
    { 
    "name": "Euchre", 
    "category": "Interest", 
    "id": "112355915446795", 
    "created_time": "2011-06-29T12:06:07+0000" 
    }, 

3) Este FQL devuelve el mismo que el código anterior, 95 páginas de fans:

SELECT page_id,name 
FROM page 
WHERE page_id IN (
    SELECT page_id 
    FROM page_fan 
    WHERE uid=me() 
) 

Entonces, para resumir, lo ideal sería que lo haría ser capaz de devolver todos los gustos para un usuario, independientemente del objeto. Sin embargo, estoy dispuesto a seguir adelante con una mezcla de páginas de fans y transmisiones continuas, si puedo devolverlas todas, junto con los datos, con una consulta FQL.

¿Alguna sugerencia? Añadiré que estoy tratando de hacer esto sin usar la API REST porque se va a degradar (¿algún día?) Por lo tanto, usar fql.multiquery no es una opción.

Respuesta

1

Lo sentimos, no se puede obtener todos los gustos de una persona que utiliza el punto final /likes. Lo limitamos a cualquier cosa que tenga una página de FB, que es cualquier objeto de gráfico abierto, sin artículos. Por ejemplo, si le gusta un objeto gráfico abierto que tiene un og:type de article, no lo devolvemos en el gráfico api likes punto final.

+3

HI Jeff, limitación de talla de la imagen de otra persona (privada) de los usuarios tener sentido, pero ¿por qué no habría un usuario tener acceso a sus gustos de las cosas que son públicos? Básicamente, esto es lo mismo que reddit o stumbleupon, le permite al usuario hacer un seguimiento de las cosas que leen en línea, dentro de la red social. – ow3n

+0

@Jeff, estoy confundido, ¿estás diciendo que Facebook permitirá que nuestra aplicación consulte la tabla similar si, y solo si, el usuario autenticado de nuestra aplicación es un actor, película o equipo deportivo? – DMCS

+0

No, estoy diciendo que puedes obtener los "Me gusta" para cualquier cosa excepto artículos. –

2

He podido usar FQL para obtener algunos, pero no todos, de los me gusta de la transmisión. Ver: http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

Las consultas que tengo son:

1) me da, reproduzco artículos me han gustado en la página Feeds:

SELECT post_id, source_id, message 
    FROM stream 
    WHERE source_id 
    IN (SELECT target_id FROM connection WHERE source_id=me() and is_following=1) 
    AND likes.user_likes=1 
    LIMIT 10 

2) me da, reproduzco artículos I' he gustado de mi alimentación que yo mismo publiqué:

SELECT post_id, source_id, message 
    FROM stream 
    WHERE source_id=me() 
    AND likes.user_likes=1 
    LIMIT 10 

Lo molesto es que no se puede g y le gusta al usuario de los elementos de transmisión para los elementos de transmisión de eventos, elementos de transmisión de amigos, elementos de transmisión de grupos, etc. Aunque tengo todos los permisos aceptados para ese usuario. No es como si estuviera pidiendo información secreta. Como una cuestión de rutina, el usuario puede me gusta y eliminar me gusta de elementos de transmisión a través de mi aplicación. Es solo que no puedo consultar una lista completa de los elementos de transmisión actuales que han sido del agrado del usuario.

+0

Esperando la respuesta perfecta. Sin embargo, para venir, supongo ... – ow3n

0

Intentar esta consulta FQL:

SELECT user_id, object_id, post_id, object_type 
FROM like 
WHERE user_id = me() 
Cuestiones relacionadas