http://developers.facebook.com/docs/reference/javascript/FB.Data.query/
FQLクエリを実行し、非同期のデータ取得のあいだ待機するFB.Data.queryオブジェクトを返します。
Examples
シンプルなFQLを実行し、結果を出力します var query = FB.Data.query('select name, uid from user where uid={0}',
user_id);
query.wait(function(rows) {
document.getElementById('name').innerHTML =
'Your name is ' + rows[0].name;
});
ランダムな友達10人の名前とイベントを表示します。2つ以上のテーブルから複数のフィールドを取得する必要があるので、シンプルなFQLクエリでは不十分です。そこで、FB.Data.queryを使って複数クエリを実行します。 // まず、ログイン中ユーザの友達10人とイベントを取得します。
// このクエリでは、引数は整数一つです(ログイン中のユーザID)
// まだ実行しないことに注意してください。
var query = FB.Data.query(
"select uid, eid from event_member "
+ "where uid in "
+ "(select uid2 from friend where uid1 = {0}"
+ " order by rand() limit 10)",
user_id);
// 次に、二つの依存するクエリを生成します。
// 友達の名前取得用とイベントの情報取得用です。
var friends = FB.Data.query(
"select uid, name from user where uid in "
+ "(select uid from {0})", query);
var events = FB.Data.query(
"select eid, name from event where eid in "
+ " (select eid from {0})", query);
// そして、これら3つのクエリ全てが実行された後に実行されるコールバック関数を指定します。
FB.Data.waitOn([query, friends, events], function() {
// build a map of eid, uid to name
var eventNames = friendNames = {};
FB.Array.forEach(events.value, function(row) {
eventNames[row.eid] = row.name;
});
FB.Array.forEach(friends.value, function(row) {
friendNames[row.uid] = row.name;
});
// 最後に、全ての結果を表示します。
var html = '';
FB.Array.forEach(query.value, function(row) {
html += '<p>'
+ friendNames[row.uid]
+ ' is attending '
+ eventNames[row.eid]
+ '</p>';
});
document.getElementById('display').innerHTML = html;
});
Parameters
Name | Type | Description |
---|---|---|
template | String | FQLクエリのテンプレート。{}の中にパラメータを指定することもできます。 |
data | Object | オブションの引数です。文字列もしくは整数の実データもしくはFB.Data.queryオブジェクトを渡すことができます。 |