web-dev-qa-db-ja.com

Facebook Graph APIでFQLクエリを実行するにはどうすればよいですか

私は、新しいOpen Graph APIを使用してFQL(facebook query language)クエリを実行する方法について、成功していません。

誰も私がこれを行う方法を知っていますか?

この素晴らしい例で答えを見つけました: http://code.google.com/p/facebook-cpp-graph-api/

32
user63898

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/

31
mjallday

PHPソリューション:

$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...' ));
17

Javascript SDKを使用すると、次を使用してこれを実現できます。

 FB.api('fql', { q: 'query here' }, function (response)
{
 //Logic here
};

レガシーはありませんREST APIが必要です。これについては多くの混乱が見られ、Facebookはそれをあまり明確にしませんでした。

12
ROFLwTIME

これは、短いスパンで複数の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秒かかります。マルチクエリでは、7秒かかります。また、バッチリクエストでは3.6秒かかります。

1
Somnath Muluk

PHPでのFQL ここでFQLの使用方法を示します。現在のFacebook APIドキュメントを注意深く見ると、非常に簡単です。時々、facebook apiの問題に関する記事を読んで、ドキュメントをまっすぐに見た方が良い場合があります。

0
Ziagl