アクティビティストリームとは何か
OpenSocialを構成する要素として、
アクティビティストリームとは、
gooホームのアクティビティストリームでは、

アクティビティストリームは友達の最新情報を追跡できるという便利な側面だけでなく、
アクティビティを作成する
まずは、
var params = {};
params[opensocial.Activity.Field.TITLE] = 'アクティビティテスト';
var act = opensocial.newActivity(params);
ご覧の通り、
opensocial. | 意味 | 表現形式 |
---|---|---|
TITLE | アクティビティ件名 | 文字列 |
BODY | アクティビティ本文 | 文字列 |
MEDIA_ | 添付するメディア | opensocial. |
アクティビティの件名や本文にはHTMLタグを利用することができます。gooホームで利用できるタグはb, i, a, span, a@hrefです。他のタグやスクリプト等は保存時に取り除かれます。
アクティビティに画像を添付する
上記で説明したアクティビティ作成時に指定できるパラメータのひとつにメディアの添付があります。アクティビティに画像等を添付すれば、
var opt_params = {};
opt_params[opensocial.MediaItem.Field.TYPE] = opensocial.MediaItem.Type.IMAGE;
var mediaItem = opensocial.newMediaItem(
'image/gif',
'http://home.goo.ne.jp/img/noimage180_p.gif',
opt_params
);
var params = {};
params[opensocial.Activity.Field.TITLE] = 'アクティビティテスト';
params[opensocial.Activity.Field.MEDIA_ITEMS] = [mediaItem];
var act = opensocial.newActivity(params);
メディアアイテムはオプションパラメータでタイプ
opensocial. | 意味 |
---|---|
AUDIO | 音声 |
IMAGE | 画像 |
VIDEO | 映像 |
なお、
アクティビティの追加をリクエストする
作成したアクティビティはアクティビティストリームに追加しなければ意味がありません。早速、
opensocial.requestCreateActivity(act, opensocial.CreateActivityPriority.HIGH, callback);
第一引数はもちろん、
アクティビティは行動履歴を表すため、
opensocial. | 意味 |
---|---|
HIGH | 優先度が高い |
LOW | 優先度が低い |
そこで、
設定で許可している | 設定で許可していない | |
---|---|---|
優先度が高い | アクティビティを追加する | ダイアログで許可を求める |
優先度が低い | アクティビティを追加する | アクティビティを追加しない |
優先度が高いのに設定で許可されていないケースについては、

当たり前の話ですが、
アクティビティを取得する
アクティビティは追加するだけでなく、
var idspec = opensocial.newIdSpec({
opensocial.IdSpec.Field.USER_ID: opensocial.IdSpec.PersonId.VIEWER,
opensocial.IdSpec.Field.GROUP_ID: opensocial.IdSpec.GroupId.SELF
});
var req = opensocial.newDataRequest();
req.add(req.newFetchActivitiesRequest(idspec), 'activity');
req.send(function(response) {
var result = response.get('activity');
if (!result.hadError()) {
var activities = result.getData();
activities.each(function(activity){
var title = activity.getField(opensocial.Activity.Field.TITLE);
var body = activity.getField(opensocial.Activity.Field.BODY);
var media = activity.getField(opensocial.Activity.Field.MEDIA_ITEMS);
if (media != undefined) {
for (var i = 0; i < media.length; i++) {
var url = media[i].getField(opensocial.MediaItem.Field.URL);
}
}
});
}
});
大まかな方法は第3回、
最終的に得られるオブジェクトは作成したopensocial.
また、
まとめ
アクティビティストリームはOpenSocialの真骨頂であり、
ぜひ、