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 コメント:
コメントを投稿