アクティビティ作成のサンプル
それでは、今回のサンプルを見ていきましょう。
今回は画像付きのアクティビティを登録するサンプルです。アクティビティのタイトルと、添付する画像のURLを2つのテキストボックスで指定し、ボタンをクリックすることで、アクティビティの登録を行います。
今回作成するアプリは、mixiでも公開しています。実行結果は次のような画面となります。
以下の内容をactivity-sample.xmlという名前でUTF-8形式で保存し、第2回の手順に沿ってアプリを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="view-sample">
<Require feature="opensocial-0.8" />
</ModulePrefs>
<Content type="html"><![CDATA[
<script type="text/javascript">
function createActivity() {
var params = {};
params[opensocial.Activity.Field.TITLE] = document.getElementById("message").value; *1
if(document.getElementById("url").value != ""){
var mediaParams = {};
mediaParams[opensocial.MediaItem.Field.TYPE] = opensocial.MediaItem.Type.IMAGE;
var mediaItem = opensocial.newMediaItem("image/jpg", document.getElementById("url").value, mediaParams); *2
params[opensocial.Activity.Field.MEDIA_ITEMS] = [mediaItem];
}
var activity = opensocial.newActivity(params); *3
opensocial.requestCreateActivity(activity,opensocial.CreateActivityPriority.HIGH,function(response) { *4
if (response.hadError()) { *5
alert(response.getErrorCode() + ":" + response.getErrorMessage());
} else {
alert("Success!");
}
});
}
</script>
アクティビティのタイトル: <input type="text" id="message"><br/>
画像のURL: <input type="text" id="url" size="50">
<button onclick="createActivity()">アクティビティ送信</button>
]]></Content>
</Module>
ボタンクリック時にcreateActivity関数が呼ばれ、以下の手順で処理が行われます。
- アクティビティ作成時のパラメータとして、TITLEフィールドを設定します。値はDOM操作でテキストボックスから取得します。
- アクティビティに添付する画像を、MediaItemオブジェクトとして作成します。URLはテキストボックスから取得します。今回はJPEG形式の画像としてimage/jpgというMIMEタイプを設定しています。作成したMediaItemオブジェクトは次行でMEDIA_ITEMSフィールドに設定します。なお、URLテキストボックスが空の場合はMEDIA_ITEMSフィールドは設定しません。
- TITLEフィールド、MEDIA_ITEMSフィールドを指定したパラメータを引数として、opensocial.newActivity関数でアクティビティを作成します。
- opensocial.requestCreateActivity関数でアクティビティを登録します。
- 登録結果にエラーがあるかどうかを判断してメッセージを表示します。
それではサンプルを実行してみましょう。アクティビティのタイトルと、添付するJPEG画像のURLを指定してボタンをクリックします。
OpenSocialコンテナでの処理が行われ、コールバック関数でアクティビティの登録の可否がダイアログ表示されます。

登録したアクティビティは、他のユーザーのポータル画面に表示されます。

画像付きのアクティビティを登録し、他のユーザーからも閲覧できるようになりました。
まとめ
今回はアクティビティの作成から登録までの流れを押さえることができました。アクティビティの使い方は今回の記事で説明した内容がほとんどで、コード的にはごくシンプルです。
しかし繰り返しになりますが、アクティビティはSNSならではのコミュニケーションを促進する、強力な機能です。SNSで日記を書いても、写真を投稿しても、だれにも更新情報が知らされないとしたら……と考えると、アクティビティの強力さを改めて感じることでしょう。しかもアクティビティはSNS標準アプリケーションに限られておらず、OpenSocialアプリケーションからも活用することができます。アクティビティの使い方次第で、アプリケーションの利用者数は大いに増加することでしょう。
それで、OpenSocialアプリケーションを設計する際には、アクティビティ機能をどのように使うかを熟考しましょう。特に、OpenSocialコンテナでのサポートされている機能の差異にもよく注意を払ってください。
次回はOpenSocialアプリケーションでのデータの永続化について扱います。お楽しみに。


