アクティビティストリームとは何か
OpenSocialを構成する要素として、アクティビティストリームは欠かせない存在です。なぜなら、アクティビティストリームこそ、ソーシャルグラフの存在意義を最も感じられる機能のひとつだからです。
アクティビティストリームとは、自分と繋がる様々な人たち(ソーシャルグラフ)の行動履歴を追跡できる、Twitterでいうタイムラインのようなものです。このタイムラインに、誰と誰が友達になったか、どんなブログを書いたのか、何をブックマークしたのか、などの情報が集約して表示されます。
gooホームのアクティビティストリームでは、アイコンやデザインの変更といったgooホーム上でのアクティビティに加え、Twitterやはてなブックマークといった外部サービスでのアクティビティ、そして今回のテーマであるガジェットからのアクティビティをまとめて表示することができます。
アクティビティストリームは友達の最新情報を追跡できるという便利な側面だけでなく、ガジェットディベロッパーにとっては、これによるバイラル効果、つまりクチコミ効果を期待することができます。アクティビティストリームを上手に活用し、あなたのガジェットをたくさんの人に使ってもらいましょう。
アクティビティを作成する
まずは、アクティビティストリームに追加するアクティビティを作成します。
ご覧の通り、必要なパラメータを指定したオブジェクトをopensocial.newActivity()メソッドの引数として渡すだけで完成です。gooホームで指定できるアクティビティのパラメータは以下のとおりです。
opensocial.Activity.Field.~ | 意味 | 表現形式 |
TITLE | アクティビティ件名(必須) | 文字列 |
BODY | アクティビティ本文 | 文字列 |
MEDIA_ITEMS | 添付するメディア | opensocial.MediaItemの配列 |
アクティビティの件名や本文にはHTMLタグを利用することができます。gooホームで利用できるタグはb, i, a, span, a@hrefです。他のタグやスクリプト等は保存時に取り除かれます。
アクティビティに画像を添付する
上記で説明したアクティビティ作成時に指定できるパラメータのひとつにメディアの添付があります。アクティビティに画像等を添付すれば、内容をビジュアル化することができ、より高いバイラル効果を期待することができるでしょう。
メディアアイテムはオプションパラメータでタイプ(画像、映像、音声)を指定し、MIMEタイプ、URL、オプションパラメータを引数として作成します。添付といっても、ファイルをアップロードする訳ではなく、リソースのURLを指定するだけですので、ご注意ください。作成したメディアアイテムは、アクティビティのパラメータに配列として追加します。
opensocial.MediaItem.Type.~ | 意味 |
AUDIO | 音声 |
IMAGE | 画像 |
VIDEO | 映像 |
なお、gooホームでは画像、映像、音声の各種メディアを添付することができますが、実際にアクティビティストリームに表示されるのは画像のサムネールのみです。
アクティビティの追加をリクエストする
作成したアクティビティはアクティビティストリームに追加しなければ意味がありません。早速、アクティビティを追加してみましょう。
第一引数はもちろん、先ほど作成したアクティビティ、第三引数は実行後のコールバック関数を指定します。第二引数はアクティビティ追加の優先度を表しているのですが、若干解説が必要です。
アクティビティは行動履歴を表すため、プライバシーと密接に関わってきます。ユーザーが意図しないアクティビティをガジェットが追加してしまうのは、ガジェット開発者にとっても好ましいものではありません。
opensocial.CreateActivityPriority.~ | 意味 |
HIGH | 優先度が高い |
LOW | 優先度が低い |
そこで、この第二引数の優先度を使って、可能な場合は追加し、そうでない場合は追加しない、という選択を行うことができます。ガジェットごとにアクティビティの追加を許可するかどうかの設定と組み合わせて、以下のような判断が行われます。
| 設定で許可している | 設定で許可していない |
優先度が高い | アクティビティを追加する | ダイアログで許可を求める |
優先度が低い | アクティビティを追加する | アクティビティを追加しない |
優先度が高いのに設定で許可されていないケースについては、ダイアログが表示され、ユーザーに許可を求めます。gooホームの場合、ここで許可すると設定自体が変更となります。
当たり前の話ですが、アクティビティが追加される対象はビューアーです。追加したアクティビティは、ガジェットを閲覧・操作している人のプロフィールおよび、その友達のアクティビティストリームに表示されることになります。
アクティビティを取得する
アクティビティは追加するだけでなく、取得することもできます。
大まかな方法は第3回、第4回で解説したDataRequest、DataResponseの内容とほぼ同じですので割愛させていただきます。
最終的に得られるオブジェクトは作成したopensocial.CollectionにActivityが入った状態となるため、eachメソッドでイテレートしてActivityを取り出し、検証していきます。
また、各アクティビティは作成した場合と同じ構造になっているため、getFieldメソッドを使ってパラメータを取り出すことができます。メディアアイテムも同様です。
まとめ
アクティビティストリームはOpenSocialの真骨頂であり、これの活用次第であなたのソーシャルアプリケーションの広がりが決まるといっても過言ではありません。
ぜひ、アクティビティストリームを最大限に活用し、ソーシャルアプリケーションをたくさんの人に使ってもらえるベストプラクティスを見つけてください。