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

2009年7月23日木曜日

[Apache Shindig][お勉強][OpenSocial] メモ73 DataRequest.newRemovePersonAppDataRequestのサーバ側実装をしてみる(1)

DataRequest.newRemovePersonAppDataRequestに対応するサーバ側処理を実装してみる。

GadgetのXMLは

と一緒。

で、newRemovePersonAppDataRequestをしている部分だけ抜き出し。


function removeAppData() {
var req = opensocial.newDataRequest();
req.add(
req.newRemovePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, 'key'),
'get_response');
/*=====================================================================*/
/* 送信 */
/*=====================================================================*/
req.send(function(response){
var result = response.get('get_response');
if (result.hadError()) {
document.getElementById('result').innerHTML = 'appDataの削除に失敗したよー:'
+ result.getErrorMessage();
} else {
document.getElementById('result').innerHTML = '削除したよー';
}
});
}


やろうとしていることは、VIEWERのkeyという名のキーのデータを削除すること。

FireBugによるPOSTリクエストのダンプは、

[
{
"method":"appdata.delete",
"params":{
"userId":["@viewer"],
"groupId":"@self",
"appId":"@app",
"fields":"key"
},
"id":"get_response"
}
]

ちょっと見難いので整形。
メソッド名はappdata.delete。

対応するAppDataServiceのメソッドは、

public Future<Void> deletePersonData(UserId userId, GroupId groupId,
String appId, Set<String> fields, SecurityToken token) throws ProtocolException {
if (logger.isDebugEnabled()) {
logger.debug("userId:[" + userId + "]");
logger.debug("userId2:[" + userId.getUserId(token) + "]");
logger.debug("groupId:[" + groupId + "]");
logger.debug("appId:[" + appId + "]");
for (String field: fields) {
logger.debug("field:[" + field + "]");
}
}
throw new UnsupportedOperationException();
}


と。

こいつを実装してやればよい。

.

0 コメント: