2011-02-02 24 views
13

¿Hay alguna manera de recuperar la lista de usuarios de Facebook que hicieron clic en el botón Me gusta en un sitio web externo?Recuperar usuarios de Facebook que gustan de una URL/página web mediante Open Graph

  • E.g. hay un dominio example.com que se ha confirmado a través de Facebook Insights para pertenecer a fbUser1 (using OG meta tags).
  • En algún lugar en ejemplo.com hay una página con varios botones similares a XFBL, cada uno apuntando a una URL específica adicional en example.com, p. Ej. example.com/xyz, example.com/abc etc.

Lo que me gustaría conseguir es la lista de usuarios que les gustaba example.com/xyz y de los que le gusta example.com/abc.

Mi enfoque intuitivo sería mirar graph.facebook.com/123456789/likes (donde el número es el ID del dominio tomada de ideas FB), pero esto siempre devuelve un conjunto de datos vacío:

{ 
    "data": [ 

    ] 
} 

también he intentado conseguir un token de acceso OAuth de https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APPID&client_secret=APPSECRET (donde APPID y APPSECRET se toman de una aplicación de FB que es marca ed como propietario del dominio usando metaetiquetas OG), pero eso no hace ninguna diferencia.

También me interesaría una solución que no sea de OpenGraph (es decir, JS SDK, FQL, etc.).

EDITAR: Usando el siguiente código (según WideBlade 's answer abajo) todavía me da una lista vacía de talla (la segunda consulta no vuelve nunca):

var objectsQuery = "select id from object_url where url in ('http://example.com/xyz', 'http://example.com/abc', 'http://example.com/123')"; 
var likesQuery = "select object_id from like where object_id = {0}"; 

FB.Data.query(objectsQuery).wait(function (objectRows) { 
    console.log(objectRows); 

    FB.Array.forEach(objectRows, function (objectRow) { 
     FB.Data.query(likesQuery, objectRow.object_id).wait(function (likeRows) { 
      console.log(likeRows); 
     }) 
    }); 
}); 

Respuesta

2

Esto no se puede hacer.Facebook no le permite consultar los ID de usuario específicos de las personas que les ha gustado una página determinada. Esto es debido a preocupaciones de privacidad.

Ver el descargo de responsabilidad en esta página https://developers.facebook.com/docs/reference/fql/like/

5

FQL debe hacer el truco.

$facebook->api_client->fql_query('SELECT user_id FROM like WHERE object_id="OBJECTID"');

Here is the link.

Some general info about FQL.

FQL se inicia utilizando el SDK de JavaScript, in this way.

Si puede publicar algunos ejemplos de código, puedo tratar de dar un poco de ayuda más específica.

Se debe hacer una nota: una vez que tiene los ID de usuario, puede consultar los nombres y obtenerlos en una lista.

EDITAR: Para obtener la URL de un objeto, debe query this table using fql.

+0

precioso, gracias. ¿Cómo obtengo un OBJECTID para una URL externa como example.com/xyz? –

+1

Acepto cuando la respuesta responda la pregunta. –

+0

Gracias de nuevo, aceptado como obviamente correcto. Sin embargo, al utilizar JS SDK y FQL, la lista de Me gusta aún está vacía. Ver edición de muestra. –

Cuestiones relacionadas