goo Social Platform 向けオンラインの友達ガジェットを Orkut sandbox に対応させてみた
opensocial-jquery を使って goo Social Platform 向けに オンラインの友達を表示するガジェット を作成しました。オンラインである友達のサムネイルを並べて表示します。マイホーム(home view)の左列に配置するのをオススメします。ちょっと前に紹介したオンラインの友達ガジェットをパワーアップして、オンラインになったとき、任意のメッセージをアクティビティに登録するようにしました。↓次のスクリーンショットのような感じです。
スクリーンショットは、マイホームの友達・コミュニティの更新情報を切り出したものです。"呼ばれて飛び出てジャジャジャジャーン" や "出まして来ましてアクビちゃ~ん" というやつが、オンラインの友達ガジェットから登録したアクティビティです。
サムネイルの横にある小さなアイコンは、オンラインの友達ガジェットを表すアイコンです。このアイコンは、次のように、ガジェットXML の /Module/ModulePrefs/Icon 要素で指定できます。
<Icon>http://developmentor.lrlab.to/favicon.ico</Icon>
また、このアイコンは、ガジェットの説明ページにリンクされています。ですので、このアイコンを工夫すれば、ガジェットへの関心が高まって、インストールして貰える確立が高まるかもしれないですね。
アクティビティのメッセージは、次のとおり、ガジェットの設定ページで指定できるようにしました。この挨拶というテキストボックスは、ガジェットXML の /Module/UserPref 要素で指定できます。
オンラインになったとき、指定したメッセージをアクティビティを登録すると、いつログインしたかその時刻が友達に伝わってしまうため、プライバシーを気にする人も出てくるかもしれません。かといって、これを気に入って積極的に使いたい人もいるかもしれません。
こういうときは、ガジェットの設定ページにある "ガジェットからアクティビティを更新" がうまく使えます。"ガジェットからアクティビティを更新" のチェックを OFF にすると、ガジェットからアクティビティを登録しようとするとき、次のように、許可を求めるダイアログを表示するようになります。
ここで "許可しない" を選択すれば、アクティビティが登録されずに継続します。"許可する" を選択すれば、アクティビティが登録されます。また、"許可する" を選択すると、今後はダイアログが表示されないようになります。
最後に改良したソースコードを抜粋します。最後にアクセスしてから 60分を経過していたとき、オンラインになったと判断して、メッセージをアクティビティに登録しています。ダイアログの表示は OpenSocial API の中で、自動的に処理してくれますので、特別なコードを書く必要はありません。
return $.getData(
'/appdata/@me/@self'
).next(function(appdata) {
var now = new Date().getTime();
var data = {};
for (id in appdata)
data = appdata[id] || {};
return $.postData(
'/appdata/@me/@self', { lastUpdate: now },
function () {
if ((data.lastUpdate || 0) + 3600*1000/*60min*/ < now)
$.postData(
'/activities/@me/@self', { title: $.pref('say') || $.msg('say') }
);
});
});
このメッセージをアクティビティに登録するという機能は、積極的に役立つものでもなく、評判や反応もイマイチなので、週明けにもサポートを取りやめて元に戻そうと思います。もしも試してみたいというときは、それまでにお願いします。
0 件のコメント:
コメントを投稿