拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
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(); } );