「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Facebookアプリ開発に挑戦(その8・FQLの基本)
Facebookから詳細な情報を得たいときには、「FQL」(Facebook Query Language)という記法で情報をリクエストすることができます。
1.FQLについて
FacebookのAPIを使うと、ユーザー等の各種のデータを読み込むことができます。
ただ、得られる項目が限定されていて、細かなデータを得ることができません。
たとえば、https://graph.facebook.com/me/friendlistsのAPIにアクセスすると、自分の友達の情報をまとめて得ることができます。
ただ、このAPIで得られるのは、個々の友達のIDと名前だけで、さらに細かい情報(アイコン等)を得ることはできません。
細かい情報も得たい場合、「FQL」(Facebook Query Language)を使います。
FQLでは、データベースのSQLと似た記法で、Facebookからデータを得る方法を記述することができます。
たとえば、自分の友達のID/名前/アイコンを読み込みたいとします。
この場合、以下のようなFQLを発行します。
SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
なお、FQLを発行するには、「fql.query」というAPIを実行します。
具体的には、以下のようなアドレスにアクセスします。
https://api.facebook.com/method/fql.query?access_token=アクセストークン&query=FQLの文
2.JavaScript SDKでFQLを発行する
JavaScript SDKでは、FB.api関数を使って、FQLを発行してデータを読み込むことができます。
その書き方は以下のようになります。
FB.api(
{
method: 'fql.query',
query: FQLの文
},
function(response) {
FQLの結果を加工する処理
}
);
たとえば、先ほど例にあげたFQLを実行し、得られたデータをもとに、ユーザーの名前とアイコンを一覧表示したいとします。
この場合、以下のようにFB.api関数を実行します。
FB.api(
{
method: 'fql.query',
query: 'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())'
},
function(response) {
var html = '<ul>';
for (var i = 0, j = response.length; i < j; i++) {
html += '<li>';
html += '<a href="http://www.facebook.com/profile.php?id=' + response[i].uid + '">';
html += '<img src="' + response[i].pic_square + '" />';
html += response[i].name + '</a></li>';
}
html += '</ul>';
jQuery('#login')
.html(html)
.show();
}
);
