如何使用Facebook Graph API执行FQL查询

时间:2010-04-27 14:16:18

标签: facebook-graph-api facebook-fql

我看起来没有成功使用新的Open Graph API执行FQL(facebook查询语言)查询。

有谁知道我该怎么做?

通过这个优秀的例子找到答案: http://code.google.com/p/facebook-cpp-graph-api/

5 个答案:

答案 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问题的文章,直接看文档。