Я без всяких успехов ищут способ выполнить запрос FQL (язык запросов facebook) с новым API Open Graph.
Кто-нибудь знает, как я могу это сделать?
Найден ответ здесь с этим превосходным примером: http://code.google.com/p/facebook-cpp-graph-api/
Я без всяких успехов ищут способ выполнить запрос FQL (язык запросов facebook) с новым API Open Graph.
Кто-нибудь знает, как я могу это сделать?
Найден ответ здесь с этим превосходным примером: http://code.google.com/p/facebook-cpp-graph-api/
Вот пример того, как выполнить запрос FQL с использованием API-интерфейса Graph и 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/
Решение PHP:
$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...' ));
Используя Javascript SDK, вы можете выполнить это, используя следующее:
FB.api('fql', { q: 'query here' }, function (response)
{
//Logic here
};
Никаких устаревших API REST. Я вижу много путаницы в этом, и Facebook не сделал это очень ясно.
Это еще один способ выполнить несколько запросов 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 секунды.
FQL с PHP здесь я покажу, как использовать FQL. Это очень просто, если вы внимательно изучите текущую документацию на facebook api. Иногда лучше не читать статьи о проблемах facebook api и смотреть прямо на документацию.