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