Как выполнить запрос FQL с помощью Facebook Graph API - PullRequest
32 голосов
/ 27 апреля 2010

Я безуспешно ищу способ выполнить запрос FQL (язык запросов facebook) с помощью нового API Open Graph.

Кто-нибудь знает, как я могу это сделать?

Нашел ответ здесь с помощью этого превосходного примера: http://code.google.com/p/facebook-cpp-graph-api/

Ответы [ 5 ]

31 голосов
/ 26 мая 2010

Вот пример того, как выполнить FQL-запрос с использованием Graph API и 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
        }
);

Предполагается, что вы уже настроили свою страницу в соответствии с указаниями Facebook, как показано здесь - http://developers.facebook.com/docs/reference/javascript/

17 голосов
/ 18 мая 2010

PHP Решение:

$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...' ));
12 голосов
/ 02 октября 2012

Используя Javascript SDK, вы можете сделать это с помощью следующего:

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

Нет необходимости в устаревшем API REST. Я вижу много путаницы в этом, и Facebook не очень ясно дал понять.

1 голос
/ 09 марта 2012

Это еще один способ выполнить несколько запросов fql за короткий промежуток времени.

// $ 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 получает массив json всего результата запросов.

И это экономит время.Это 3 запроса в отдельности занимает всего 9 секунд.С несколькими запросами это занимает 7 секунд.И с пакетным запросом это занимает 3,6 секунды.

0 голосов
/ 23 апреля 2013

FQL с PHP здесь я покажу, как использовать FQL. Это очень просто, если вы внимательно посмотрите текущую документацию API api. Иногда лучше не читать статьи о проблемах API Facebook и смотреть прямо на документацию.

...