是否可以在PHP SDK中使用新的图形API FQL扩展?

时间:2011-10-26 18:02:31

标签: php facebook facebook-fql facebook-php-sdk

Facebook宣布可以通过Graph API使用FQL:https://developers.facebook.com/blog/post/579/

这非常好,但我想通过PHP SDK使用它,因为我的所有应用程序都使用它,并且所有授权都通过该库。我有最新的Git版SDK,但是这个:

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

...或类似的查询只是不起作用。它返回空数组或冻结我的Apache(!)。图书馆内部发生了什么样的错误选择或者它的结果无法通过?

编辑:我知道我可以在PHP SDK中使用REST API支持you mention。我很好奇使用新方法,因为REST API已被弃用,很可能在几个月内不再存在。我的政策是使用Facebook发布的最新功能。这样做我不需要经常更新我的代码,因为使用了不推荐使用的功能。

编辑2:好吧,我希望我的房间里没有LSD ...但是,今天我打开浏览器,我以前尝试过使用上面提到的不同方法并猜测是什么.. 。?有用!现在我可以正好使用那段代码,我写了几行更高的内容,它完美地回归了预期......而不是WTF,我说: Facebook平台

1 个答案:

答案 0 :(得分:1)

您确实可以通过FQL方法使用api

试试这个:

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

如您所见,您必须指定运行FQL查询,然后将FQL语句传递给数组。

编辑:

// 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方法,在SDK(尚)中没有其他方法可以执行FQL查询。