メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年7月7日火曜日

[Apache Shindig][お勉強][OpenSocial] メモ44 opensocial.requestPermission()のいんちき実装

とりあえず、opensocial.requestPermission()のいんちきな実装をしてみた。


opensocial.Container.prototype.requestPermission = function(permissions, reason,
opt_callback) {
if (opt_callback) {
if (window.confirm("ガジェットがあなたのプロフィール情報の使用許可を求めています。\n【理由】" + reason + "\nここで許可するとあなたの全プロフィール情報が利用可能になります。許可しますか?")) {
opt_callback(new opensocial.ResponseItem(
null, null, false, null));
}
else {
opt_callback(new opensocial.ResponseItem(
null, null, opensocial.ResponseItem.Error.FORBIDDEN, null));
}
}
};
 

な感じ。
opt_callbackの中で、きっとPersonオブジェクトへのアクセスがあったりするに違いない。違った。
confirmで「はい」が押下されたら、サーバ側へ許可されたことを教えないとだめかも。
Personオブジェクトへのアクセスで拒絶されちゃうかもしれないので。
ま、その辺はコンテナ実装依存か。

で、ガジェットは

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="opensocial.requestPermission()">
<Require feature="opensocial-0.8" />
</ModulePrefs>
<Content type="html"><![CDATA[
<h1>opensocial.requestPermission()</h1>
<div id='env'></div>
<script type="text/javascript">

opensocial.requestPermission([opensocial.Permission.VIEWER],
"理由とか",
function(/*pensocial.ResponseItem*/res) {
if (res.hadError()) {
/* エラーだったよ */
switch(res.getErrorCode()) {
case opensocial.ResponseItem.Error.NOT_IMPLEMENTED:
alert("NOT IMPLEMENTEDだってさ");
break;
case opensocial.ResponseItem.Error.FORBIDDEN:
alert("FORBIDDENだってさ");
break;
default:
alert(res.getErrorMessage() + "だってさ");
break;
}
}
else {
alert("うまくいったっぽいよ");
}
});
</script>
]]>
</Content>
</Module>
 

な感じ。
.

0 コメント: