Можно ли использовать новое расширение API FQL для графов с PHP SDK? - PullRequest
0 голосов
/ 26 октября 2011

Facebook объявил о возможности использовать FQL через Graph API: https://developers.facebook.com/blog/post/579/

Это очень хорошо, но я бы хотел использовать его через PHP SDK, так как все мое приложение использует его, и вся авторизация проходит через это.библиотека.У меня есть последняя версия Git SDK, но это:

$facebook->api('/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()');

... или подобные запросы просто не работают.Он возвращает пустой массив (ы) или замораживает мой Apache (!).Какая магия происходит внутри библиотеки, которую так легко выбрать или ее результаты не могут пройти?

РЕДАКТИРОВАТЬ: Я знаю, что могу использовать поддержку REST API в PHP SDK как Вы упоминаете .Мне было любопытно использовать новый метод, поскольку REST API устарел и, скорее всего, через пару месяцев его больше не будет.Моя политика заключается в использовании последних доступных функций Facebook.При этом мне не нужно будет время от времени обновлять свой код из-за использования устаревших функций.

РЕДАКТИРОВАТЬ 2: Что ж, я надеюсь, что в моей комнате нет ЛСД ...однако сегодня я открыл свой браузер со всеми моими предыдущими попытками использовать различные подходы, упомянутые выше, и угадайте, что ...?Оно работает!Теперь я могу использовать именно тот фрагмент кода, который я написал на несколько строк выше, и он отлично возвращает то, что ожидается ... Вместо WTF я говорю: Facebook Platform .

1 Ответ

1 голос
/ 26 октября 2011

Вы действительно можете использовать FQL через api метод.

попробуйте это:

$fql = 'SELECT uid2 FROM friend WHERE uid1 = me()';
$ret_obj = $facebook->api(array(
                                 'method' => 'fql.query',
                                 'query' => $fql,
                               ));

Как видите, вы должны указать, что выполняете запрос FQL, а затем передать оператор FQL в массив.

EDIT:

// Making a graph API call with FQL outside of the PHP SDK.

$fql_query_url = 'https://graph.facebook.com/'
. '/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()'
. '&' . $access_token;

$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);

Внутри PHP SDK вы должны использовать метод fql.query, другого способа выполнить запрос FQL в SDK нет (пока).

...