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

2009年7月23日木曜日

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

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

GadgetのXMLは

と一緒。

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

  1. function removeAppData() {  
  2.   var req = opensocial.newDataRequest();  
  3.   req.add(  
  4.     req.newRemovePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, 'key'),  
  5.     'get_response');  
  6.   /*=====================================================================*/  
  7.   /* 送信                                                                */  
  8.   /*=====================================================================*/  
  9.   req.send(function(response){  
  10.     var result = response.get('get_response');  
  11.     if (result.hadError()) {  
  12.       document.getElementById('result').innerHTML = 'appDataの削除に失敗したよー:'  
  13.         + result.getErrorMessage();  
  14.       } else {  
  15.       document.getElementById('result').innerHTML = '削除したよー';  
  16.     }  
  17.   });  
  18. }  

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

FireBugによるPOSTリクエストのダンプは、
  1. [  
  2.   {  
  3.     "method":"appdata.delete",  
  4.     "params":{  
  5.                "userId":["@viewer"],  
  6.                "groupId":"@self",  
  7.                "appId":"@app",  
  8.                "fields":"key"  
  9.               },  
  10.     "id":"get_response"  
  11.   }  
  12. ]  

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

対応するAppDataServiceのメソッドは、
  1. public Future<Void> deletePersonData(UserId userId, GroupId groupId,  
  2.     String appId, Set<String> fields, SecurityToken token) throws ProtocolException {  
  3.   if (logger.isDebugEnabled()) {  
  4.     logger.debug("userId:[" + userId + "]");  
  5.     logger.debug("userId2:[" + userId.getUserId(token) + "]");  
  6.     logger.debug("groupId:[" + groupId + "]");  
  7.     logger.debug("appId:[" + appId + "]");  
  8.     for (String field: fields) {  
  9.       logger.debug("field:[" + field + "]");  
  10.     }  
  11.   }  
  12.   throw new UnsupportedOperationException();  
  13. }  

と。

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

.

0 コメント: