我看起来没有成功使用新的Open Graph API执行FQL(facebook查询语言)查询。
有谁知道我该怎么做?
通过这个优秀的例子找到答案: http://code.google.com/p/facebook-cpp-graph-api/
答案 0 :(得分:31)
以下是如何使用Graph API和JavaScript进行FQL查询的示例
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/
答案 1 :(得分:17)
PHP解决方案:
$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...' ));
答案 2 :(得分:12)
使用Javascript SDK,您可以使用以下方法完成此操作:
FB.api('fql', { q: 'query here' }, function (response)
{
//Logic here
};
不需要旧版REST API。我看到很多这方面的困惑,Facebook还没有说清楚。
答案 3 :(得分:1)
这是在短时间内执行多个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获取整个thre查询结果的json数组。
这节省了很多时间。这3个查询总共需要9秒。使用multiquery需要7秒。批量请求需要3.6秒。
答案 4 :(得分:0)
FQL with PHP这里我展示了如何使用FQL。如果你仔细看看当前的facebook api文档,这很简单。有时最好不要阅读关于facebook api问题的文章,直接看文档。