OpenSocialを始めよう(7) - アクティビティ応用プログラミング
前回は、基本的なアクティビティの作成方法について学びました。今回は、「メディアアイテム」「アクティビティの国際化」「メッセージ内の変数置換」「アクティビティのサマリ」など、応用的なアクティビティの作成方法について学んでいきたいと思います。
今回はアクティビティ作成の応用編
今回お話しするのは、前回に引き続きアクティビティのお話です。
アクティビティは、単なるテキストメッセージだけではありません。静止画や音声、動画なども含むことができるようになっています。
また、ソーシャルアプリは世界中の人に使われることを考慮しなくてはなりません。つまり、メッセージの国際化が必要なわけです。
と言うことで、今回お伝えする内容は以下のようなものです。
- メディアアイテム・・・アクティビティにメディアコンテンツを含める方法
- アクティビティの国際化・・・アクティビティを複数言語に対応させる方法
- メッセージのテンプレート・・・メッセージ内に変数を埋め込んでおき、それを置換してアクティビティメッセージを作成する方法
- アクティビティのサマリ・・・複数のアクティビティを要約して表示するための方法
また、アクティビティに関する話題の最後に、アクティビティの利用方針についてOrkutのドキュメントに記載されていた項目を紹介し、「アクティビティはどのように利用すべきか、どう使ってはいけないのか」を見ていきたいと思います。
メディアアイテム
では早速プログラムの紹介・・・と行きたいところですが、その前に一つお断りしておくことがあります。今回の記事でこれからご紹介しようと思っているテクニックは、現在のOrkut上では全て動作しませんでした。。
他にもMySpaceやHi5でも軽く(完璧に、ではありません)試してみたのですが、やはりこれらのAPIが完全にサポートされているSNSは現在のところ見当たりませんでした。なので、ここに書いてある事柄は将来的にサポートされるはずの機能を予習している、と言うつもりでご覧ください。
では、メディアアイテムです。メディアアイテムとは、アクティビティの中に含まれる画像や音声、動画などを指します。画像が埋め込まれたアクティビティは、以下のような見た目になります(以下の画像は、Orkut開発者ガイドラインからの引用)。
アクティビティにメディアアイテムを追加するには、以下のようなプログラムを書きます。
// アクティビティメディアアイテムの作成 var photo = opensocial.newActivityMediaItem( opensocial.Activity.MediaItem.Type.IMAGE, "http://your.image.url.com"); // パラメータにメディアアイテムを追加 var params = {}; params[opensocial.Activity.Field.TITLE] = "子供の写真をアップ!"; params[opensocial.Activity.Field.MEDIA_ITEMS] = [photo]; // アクティビティを作成し、送信 var activity = opensocial.newActivity(params); opensocial.requestCreateActivity(activity);
opensocial.newActivityMediaItem()メソッドは、メディアタイプ(opensocial.Activity.MediaItem.Typeクラスの定数)と、メディアコンテンツを指すURLを引数にとり、opensocial.Activity.MediaItemクラスのインスタンスを返します。
その後は、opensocial.newActivity()に渡すパラメータに対してメディアアイテムを追加(複数追加できるので配列を用いる)し、前回と同様アクティビティを送信するだけです。
MediaItemクラスを用いずに、マルチメディアコンテンツをアクティビティに含める方法
先ほども申し上げた通り、現在のOrkutではメディアアイテムを利用することはできません。が、メディアアイテムを利用せずとも、画像をアクティビティに含めることは可能です。
その方法は、「アクティビティメッセージ内でHTMLを用いる」と言うものです。OpenSocial APIでは、本来アクティビティメッセージ内に含められるHTMLタグは<b>, <i>, <a>, <span>に制限していますが、コンテナによってはこれ以外のHTMLを許容している場合もあります。
Orkutはアクティビティ本文内での<img>タグを許容していますので、それを利用して画像を表示することができます。
params[opensocial.Activity.Field.BODY] =
"<img src=’http://lh5.ggpht.com/shumpei.shiraishi/R-NubIvBiuI/AAAAAAAAB_w/eQl-1N9_a2E/P3210345.JPG’ width=’32′>aaa";
このサイトについて
TrackBack URL :


