OpenPNEとOpenSocialを連携させるには?
前編の「Google OpenSocialによってSNSで何ができるのか?」でも述べましたが、筆者はオープンソースのSNSエンジンを開発する「OpenPNE」プロジェクトを運営するうえで、OpenSocialの話題に当事者としてかかわっています。そこで次に、OpenPNEとOpenSocialの連携について解説しましょう。
OpenPNE小窓とは?
OpenPNEには「小窓」と呼ぶWebガジェット(Webウィジェット)の仕組みがあります。以下に、OpenPNE小窓の例をいくつか示します。
Amazonの商品ページのURLをSNSに張り付けると、自動的に図8のように表示するWebガジェットです。
Youtubeの動画を、SNS内に表示します。
脳内メーカーで行った診断結果を、SNS内のフレンドに紹介するために使います。
「小窓」は図の用にSNSの日記や掲示板に「小さな窓」を開けたように見えるところから、この名前が付きました。すでに、80以上の有用な小窓があるので、これをOpenSocial上でも動かすことができれば、利用の幅が格段に広がりますね。
OpenSocial対応「脳内メーカー」
先ほど紹介した、脳内メーカー小窓をOpenSocial対応させ、hi5の中に埋め込んでみます。SNSサーバから名字と名前の情報を取得して、脳内メーカーの画像を生成しています。ソースの中身は、先ほど作ったリスト2のソースコードをベースにして以下のようなカスタマイズを行いました。
<script src="http://teji.pne.jp/os/nounaimaker.com.js"></script>
脳内メーカー小窓のJavaScriptをロードしました。
<script src="http://teji.pne.jp/os/ecl.js"></script>
上記コードで文字コード変換ライブラリをロードしました。
req.add(req.newFetchPersonRequest('OWNER'), 'owner');
OWNER(アプリを設置したページの所有者)の情報を取得しました。
var url = 'http://nounaimaker.com/?a=Maker&oo='
+ EscapeEUCJP(name.getField(
opensocial.Name.Field.FAMILY_NAME)
+ " "
+ name.getField(opensocial.Name.Field.GIVEN_NAME));
SNSサーバから得られた名字/名前の情報を基にして、脳内メーカーの診断サイトのURLを生成しました。
url2cmd(url);
生成したURLを小窓作成関数に引き渡しました。
脳内メーカーアプリのソースコードは、リスト3に掲載しておきますので、ぜひこれを基にして実践してみてください。プログラム内で利用した脳内メーカー小窓のJavaScriptは、OpenPNE 2.10.0に同梱されています。また、文字コード変換のJavaScriptは、「Escape Codec Library」を利用させていただきました。
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Sample App">
<Require feature="opensocial-0.7" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script src="http://teji.pne.jp/os/nounaimaker.com.js"></script>
<script src="http://teji.pne.jp/os/ecl.js"></script>
<script>
gadgets.util.registerOnLoadHandler(init);
function init() {
loadFriends();
}
function loadFriends() {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('OWNER'), 'owner');
req.send(onLoadFriends);
}
function onLoadFriends(data) {
var owner = data.get('owner').getData();
var name = owner.getField(opensocial.Person.Field.NAME);
var url = 'http://nounaimaker.com/?a=Maker&oo='
+ EscapeEUCJP(name.getField(
opensocial.Name.Field.FAMILY_NAME)
+ " "
+ name.getField(opensocial.Name.Field.GIVEN_NAME));
url2cmd(url);
}
</script>
]]>
</Content>
</Module>
OpenSocial、そしてSNSの今後に注目すべし
いかがでしたでしょうか? ここまでの説明で、OpenSocialがSNSとアプリケーションとの分業を具体的にどのように実現するか? 分かっていただけたと思います。
OpenSocialは執筆中にも少しずつバージョンアップしている段階です。対応するSNSも徐々に増えていく途上にあります。 OpenSocialはまだまだ実現できる機能も少なく、また市場は成熟していませんが、筆者の予想では、今後大きく広がると考えています。
筆者の携わるOpenPNEプロジェクトも、OpenSocialの進化に合わせて対応を進めていきます。2008年秋にリリース予定のOpenPNE 3.0では、OpenSocialに正式に対応する予定です。OpenSocial進化の過程を追いかけたい方は、OpenSocialの開発サイトやOpenPNEプロジェクトの進ちょく状況をチェックしてください。
また、OpenSocialの先輩としてすでに市場が成熟している「Facebook」の動向も見逃せません(参考「FacebookはOpenSocial Foundationに不参加。MSも独自路線か」)。近い将来、SNSとソーシャル・アプリケーションとの「分業」が完成した後、どのようなビジネスに発展するのか? 筆者は非常に注目しています。
Copyright © ITmedia, Inc. All Rights Reserved.



