web-dev-qa-db-fra.com

Comment puis-je exécuter une requête FQL avec Facebook Graph API

Je cherche sans succès un moyen d'exécuter une requête FQL (langage de requête facebook) avec la nouvelle API Open Graph.

Est-ce que quelqu'un sait comment je peux faire ça?

Trouvez la réponse ici avec cet excellent exemple: http://code.google.com/p/facebook-cpp-graph-api/

32
user63898

Voici un exemple de procédure à suivre pour effectuer une requête FQL à l'aide de l'API Graph et de 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
        }
);

Cela suppose que vous avez déjà configuré votre page conformément aux instructions de Facebook, comme indiqué ici - http://developers.facebook.com/docs/reference/javascript/

31
mjallday

Solution PHP:

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

En utilisant le SDK Javascript, vous pouvez accomplir ceci en utilisant:

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

Aucune API REST héritée requise. Je vois beaucoup de confusion à ce sujet et Facebook n'a pas été très clair.

12
ROFLwTIME

C’est un autre moyen d’exécuter plusieurs requêtes fql à court terme.

// $ current_user = facebook id

 $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 obtient un tableau json du résultat entier de trois requêtes. 

Et cela fait gagner beaucoup de temps. Ces 3 requêtes individuellement prend au total 9 secondes. Avec le multiquery cela prend 7 secondes. Et avec une demande par lot, cela prend 3,6 secondes.

1
Somnath Muluk

FQL avec PHP je montre ici comment utiliser FQL. C’est très simple si vous examinez attentivement la documentation actuelle de l’API de Facebook. Parfois, il est préférable de ne pas lire les articles sur les problèmes de l’API de Facebook et de regarder directement la documentation.

0
Ziagl