「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Facebookアプリ開発に挑戦(その4・Graph APIの利用)
Facebookアプリで、ユーザー等の各種の情報を取得するには、Facebookの「Graph API」を利用します。
Javascript SDKを使うと、Graph APIを呼び出してデータを取得する処理を、比較的簡単に実装することができます。
1.Graph APIの概要
Graph APIは、Facebookから各種の情報を取得するためのAPI(Application Programming Interface)です。
「http://graph.facebook.com/API名?パラメータ=値&パラメータ=値・・・」のようなアドレスにHTTPでアクセスすると、Facebookのデータを得ることができます。
なお、Graph APIの詳細な情報は、Facebookの「Graph API Reference」のページにあります。
2.JavaScript SDKでGraph APIを呼び出す
JavaScript APIを使う場合、Graph APIを呼び出すには、「FB.api」という関数を使います。
この関数の書き方は、以下のようになります。
FB.api(アドレス, パラメータ, function(response) {
結果を処理する部分
});
「アドレス」には、呼び出すAPIのアドレスのうち、「http://graph.facebook.com」を除いた部分を指定します。
「パラメータ」の部分には、パラメータ名と値からなるオブジェクトを指定します。
パラメータがない関数では、パラメータの部分を省略します。
APIの呼び出しが終わると、functionで指定した関数が実行されます。
その関数には、APIから返されたデータを表すオブジェクトが渡されます。
そのオブジェクトを利用して、必要な処理を行います。
なお、APIをHTTPで直接に呼び出す場合、パラメータとしてアクセストークン(権限等の情報を暗号化した値)を渡す必要があります。
ただ、JavaScript SDKを使う場合、アクセストークンは自動的に処理されますので、アクセストークンを気にする必要がありません。
3.事例
ごく簡単な事例として、アプリケーションを許可したユーザーに対して、「○○さんこんにちは。」と表示するだけのものを作ってみます。
HTMLの部分は、先日解説したひな形の通りです。
JavaScriptを一部書き換えて、APIを呼び出す処理を追加します。
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/ja_JP/all.js';
document.getElementById('fb-root').appendChild(e);
}());
window.fbAsyncInit = function() {
FB.init({
appId: 'アプリケーションのID',
status: true,
cookie: true,
xfbml: true
});
FB.getLoginStatus(function(response) {
if (response.session) {
FB.api('/me', function(response) {
jQuery('#login')
.html('<p>' + response.name + 'さんこんにちは。</p>')
.show();
});
}
else {
jQuery('#not_login').show();
jQuery('#login_button').click(function() {
FB.login(function(response){
if (response.session) {
top.location.href = 'アプリケーションのアドレス';
}
});
});
}
});
}
先日のひな形のプログラムと比べると、16~20行目が異なります。
この部分で、FB.api関数を実行して、Graph APIを呼び出しています。
アドレスとして「/me」を指定していますので、「http://graph.facebook.com/me」を呼び出すことになります。
このアドレスは、ユーザーの情報を得るAPIのアドレスです。
APIを実行すると、処理結果が以下のようなJSONとして返されます。
{
id : ユーザーのID,
name : ユーザーの名前,
・
・(その他各種の情報)
・
}
リストの16行目で、この結果を変数responseに代入しています。
したがって、response.nameがユーザーの名前を表します。
この結果、18行目の文で「<p>○○さんこんにちは。</p>」というHTMLが作られ、IDがloginの要素の中に流し込まれて、上であげた画面のように表示されます。
