2010-04-27 18 views
33

Estoy buscando sin éxito una forma de ejecutar una consulta FQL (lenguaje de consulta de Facebook) con la nueva API de Open Graph.¿Cómo puedo ejecutar una consulta FQL con Facebook Graph API

¿Alguien sabe cómo puedo hacer esto?

encontrado la respuesta aquí con este excelente ejemplo: http://code.google.com/p/facebook-cpp-graph-api/

+0

¿Has leído la documentación de Graph API? http://developers.facebook.com/docs/api – inkedmn

+2

Seguro que sí y no entendí cómo hacerlo – user63898

+3

Al usar la API de gráficos no puede. Sin embargo, la API de FQL aún está disponible, como han mencionado varias personas. – Yuliy

Respuesta

17

PHP Solución:

$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...')); 
+0

¿FQL es compatible con la nueva Graph API? Por soporte, no me refiero a soporte obsoleto. – BlueSilver

+0

ese es el único método que encontré hasta ahora –

+0

¡Esto funciona para mí! :) – happyhardik

31

Aquí hay un ejemplo de cómo hacer una consulta FQL utilizando la API de gráficos y JavaScript

FB.api(
     { 
      method: 'fql.query', 
      query: 'SELECT uid, first_name, last_name FROM user WHERE uid = ' + someUid 
     }, 
     function(data) { 
      // do something with the response 
     } 
); 

Esto supone que ya ha configurado su página de acuerdo con las directrices de Facebook como se muestra aquí - http://developers.facebook.com/docs/reference/javascript/

+0

@happyhardik Es un ejemplo de API gráfica que usa javascript con la biblioteca python-sdk de Facebook. [FB.api docs] (http://developers.facebook.com/docs/reference/javascript/fb.api/) –

+2

esto no es Graph API. Solo capa de consulta FQL bajo Graph API y REST API. – Raptor

+2

Esto no da como resultado una llamada GraphAPI. El FB.api utilizado de esta forma hará una llamada a la API REST en desuso. Existe una diferencia, por ejemplo, que las llamadas GraphAPI son compatibles con ETags, por lo que puede almacenar en caché los resultados de las llamadas API en el cliente. –

1

Esta es otra forma de ejecutar varias consultas fql en un lapso corto.

// $ current_user = ID de Facebook

$query1="SELECT uid, name FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query2="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query3="SELECT uid, name, work, education FROM user WHERE uid = $current_user"; 
$queries = array(
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query2)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query3)) 
      ); 

      $objs = $facebook->api('/?batch='.json_encode($queries), 'POST'); 

$ objs obtiene matriz JSON del resultado conjunto de la thre consultas.

Y está ahorrando mucho tiempo. Estas 3 consultas individuales toman un total de 9 segundos. Con multiquery, toma 7 segundos. Y con la solicitud por lotes tarda 3,6 segundos.

12

Utilizando el SDK de JavaScript, puede lograr esto mediante la siguiente:

FB.api('fql', { q: 'query here' }, function (response) 
{ 
//Logic here 
}; 

Sin legado REST API requerida. Veo mucha confusión sobre esto y Facebook no lo ha dejado muy claro.

+0

Hola ROFLwTIME, ¿puedes exponer el recurso de tu respuesta? No puedo encontrar ese ejemplo en las guías de desarrolladores de Facebook. No hay nada escrito sobre fql y Javascript sdk ... me gustaría obtener el enlace oficial de doc, ¡gracias! – arty

+1

@arty, realmente no hay un documento oficial del que tenga conocimiento.Obtuve esto de los comentarios del desarrollador de Facebook sobre algunos de sus blogs de usuarios que hacen preguntas sobre javascript sdk y FQL. Esta solución ha funcionado bien para mí desde hace más de un año. Sé que probablemente estés buscando algo oficial para que no desarrolles algo que se forme en el futuro. Por lo que sé, JavaScript SDK y FQL no van a ninguna parte, así que creo que esto estará bien por ahora, pero lamentablemente no hay garantías. – ROFLwTIME

+1

ROFLwTIME, gracias por su aporte y experiencia. tu respuesta me ayudó mucho cuando la encontré. Es una pena que Facebook no concuerde con su documentación ... uno puede implementar el mismo de 100 maneras diferentes según sus ejemplos/guías/tutoriales ... era nuevo en su API cuando le pregunté al enlace oficial ... ya entendí que era demasiado esperar) facebook chicos, por favor pongan más esfuerzo para mantener una documentación estricta, ya no están su compañía ... – arty

0

FQL with PHP aquí Muestro cómo usar FQL. Es muy simple si echa un vistazo cuidadoso a la documentación de API actual de Facebook. A veces es mejor no leer artículos sobre problemas de API de Facebook y mirar directamente a la documentación.