Facebookアプリ開発に挑戦(その9・FB.Data.query関数)

  • 投稿日:
  • by
  • カテゴリ:

以前にFQLの基本について書きましたが、その後にJavaScript SDKに「FB.Data.query」という新たな関数が追加されていました。
この関数の使い方を紹介します。

1.FB.Data.query関数の使い方

FB.Data.query関数は、FQLでのクエリを表すオブジェクトを作成する働きをします。
書き方は以下のようになります。

変数 = FB.Data.query(FQLの文);

FQLを実際に実行するには、FB.Data.query関数で得られたオブジェクトに対し、「wait」というメソッドを実行します。
waitメソッドには、パラメータとしてコールバック関数を渡します。
FQLが実際に実行されると、その結果がコールバック関数に渡されます。
実際の書き方は以下のようになります。

変数.wait(
  function(rows) {
    FQLの結果を得て処理する部分
  }
);

2.事例

「FQLの基本」の記事で紹介した事例を、FB.Data.query関数を使って書き換えると、以下のようになります。

var query = FB.Data.query('SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())');
query.wait(
  function(rows) {
    var html = '<ul>';
    for (var i = 0, j = rows.length; i < j; i++) {
      html += '<li>';
      html += '<a href="http://www.facebook.com/profile.php?id=' + rows[i].uid + '">';
      html += '<img src="' + rows[i].pic_square + '" />';
      html += rows[i].name + '</a></li>';
    }
    html += '</ul>';
    jQuery('#login')
      .html(html)
      .show();
  }
);