今回は、Google Open Social ネタで行きたいと思います。
Google CodeのOpen Socialページには、賛同している企業が続々と公開され、それに関するニュースも頻繁に見るようになりました。
個人的にはmixi以外の日本企業が無いからなのか、あるいは実際にサービスとして存在しているものが無いせいなのか、いまいち全体像というかメリットが実感できておりません。
そこで今回は、具体的にどのようなことができるのか調査してみました。
Google Open Social とは、各SNSが持つのデータを外部に提供することを目的としたAPIの仕様をまとめたものです。
また、Google Open Socialの利用方法は、以下の2つがあります。
- 上記情報をOpen Socialに準拠したAPIを介し、データを提供する側(コンテナ)
- APIからデータを取得し、サービスを作る側(デベロッパ)
今回はデベロッパの立場から、orkutが提供するAPIを使ったチュートリアルをやってみました。
ざっくりとした手順は、以下のようになります。
- orkutに登録
- orkutのテスト環境(sandbox)に登録
- sandbox上で友達関係を構築する
- GGEにてOpen Socialガジェットを作成する
- sandbox上のマイページに、ガジェットを追加する
1.orkutに登録
orkutは招待制ではないので、登録は
こちらから簡単に行えます。(Googleアカウントが必要です。)
2. sandboxに登録
現時点では、APIはsandbox上でしか提供されていないので、
こちらから利用する為の申請を行わなければなりません。僕の場合、承認されるまでに1日かかりました。。
3. 友達情報を取得するAPIを利用するため、sandbox上で友達関係を構築する。
こちらの
フォーラムで、友達募集中のイケメン達がいっぱいいるので、Friend登録しまくります。
実際に登録依頼をしてみましたが、遠い外国の人たちが多いためか、いまだ承認してくれた人はいません。悲しい。。だれか友達になってください。
4. ガジェット作成
orkut上で動作するガジェットは、Googleガジェットと同一の仕様で動きます。よって、
前回のエントリと同様に、GGE上でXMLを記述していく形になります。
先述のようにまだ友達がいないので、とりあえず自分の情報を出力するAPIだけを用いることにしました。
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="My Data">
<Require feature="opensocial-0.6"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
function getData() {
document.getElementById('message').innerHTML = 'Requesting my data...';
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('OWNER'), 'owner');
req.send(showMyData);
};
function showMyData(dataResponse) {
var owner = dataResponse.get('owner').getData();
var html = 'My name is ' + owner.getDisplayName();
document.getElementById('message').innerHTML = html;
};
gadgets.util.registerOnLoadHandler(getData);
</script>
<div id="message"> </div>
]]>
</Content>
</Module>
太文字部分がOpen Social APIになります。上記ソースをGGEに保存し、保存先のURIをコピーします。
5. sandbox上のマイページにガジェットを登録する
このページに行き、先ほど保存したガジェットのURIを張りつけ、登録します。
登録できたようです。きちんとAPIから戻り値がかえってきました。
今回は友達がいなく、友達情報を取得するAPIを利用できませんでしたが、
APIリファレンスを見る限り、様々な情報を取得できるようです。
しかし残念なことに、僕が見る限りではorkutのsandbox上できちんと動いているガジェットが存在してませんでした。僕のようにチュートリアルのコードをコピペしたものや、Javascriptエラーが起きているもの、利用しているAPIのバージョンが異なってエラーになっているものなどです。皆さん結構四苦八苦されているようです。。
現時点での最新のAPIバージョンは0.7になっており、今後も機能追加やブラッシュアップされることが予想されます。APIを用いてどのようなサービスができるか想像すると楽しいですね。