次は、複数activityId指定で、newFetchActivitiesRequestしてみる。
対応するActivityServiceのメソッドは、
- public Future<RestfulCollection<Activity>> getActivities(UserId userId, GroupId groupId,
- String appId, Set<String> fields, CollectionOptions options, Set<String> activityIds, SecurityToken token)
- throws ProtocolException;
これ。
GadgetのXMLに書くJavaScriptは、
- function getTwoData() {
- /*===================================================================*/
- /* OWNER IdSpec */
- /*===================================================================*/
- var idspec = new opensocial.IdSpec();
- idspec.setField(opensocial.IdSpec.Field.USER_ID, opensocial.IdSpec.PersonId.OWNER);
- idspec.setField(opensocial.IdSpec.Field.GROUP_ID, opensocial.IdSpec.GroupId.SELF);
- var params = {};
- params['activityId'] = [
- 'tjt0tt30k9f0hje01eu0emq0zr505bd0',
- 'w920slc0ze20nmf0diq0cnk0mj71kbz0'
- ];
- /*===================================================================*/
- /* DataRequestオブジェクトを作成し、 */
- /* そこにActivity取得リクエストを追加. */
- /* レスポンスを取得するときのキーは'get_activity' */
- /*===================================================================*/
- var req = opensocial.newDataRequest();
- req.add(req.newFetchActivitiesRequest(idspec, params), 'get_activity');
- /*===================================================================*/
- /* 送信! */
- /*===================================================================*/
- req.send(function(response){
- var activity = response.get('get_activity')
- if (activity.hadError()) {
- document.getElementById('result').innerHTML
- = 'エラーだったよ:' + activity.getErrorMessage();
- return;
- }
- var out = document.createElement('ul');
- var li = document.createElement('li');
- if (activity.getData().size() == 0) {
- li.innerHTML = 'Activity0件';
- out.appendChild(li);
- }
- activity.getData().each(function(act) {
- var title = act.getField(opensocial.Activity.Field.TITLE);
- var media = act.getField(opensocial.Activity.Field.MEDIA_ITEMS);
- if (media != undefined) {
- for (var ii=0, len = media.length; ii < len; ii++) {
- if (media[ii].getField(opensocial.MediaItem.Field.TYPE) == opensocial.MediaItem.Type.IMAGE) {
- title +=
- '
- g src="'
- + media[ii].getField(opensocial.MediaItem.Field.URL);
- + '/>';
- }
- }
- }
- li.innerHTML = title;
- out.appendChild(li);
- });
- document.getElementById('result').appendChild(out);
- });
- }
こんな感じ。
params['activityId'] に今度は配列(というんですかね?)をセット。
jsonrpccontainer.jsのnewFetchActivitiesRequestもいい感じに修正し、
リクエストしてみると、、、
ちゃんとサーバ側に全てのパラメータがわたる。
わたっている様はこんな感じ。
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - userId:[OWNER]:
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - groupId:[SELF]:
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - appId:[http://localhost/opensocial/hello.xml]:
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:sortBy:[topFriends]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:sortOrder:[ascending]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:filter:[null]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:filterOperation:[contains]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:filterValue:[]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:first:[0]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:max:[20]
[リクエスト:[20481986]] 2009-07-24 22:35:34,328 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - options:updatedSince:[null]
[リクエスト:[20481986]] 2009-07-24 22:35:34,329 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - activityId:[tjt0tt30k9f0hje01eu0emq0zr505bd0]
[リクエスト:[20481986]] 2009-07-24 22:35:34,329 DEBUG jp.qsdn.gms.social.service.ActivityServiceImpl - activityId:[w920slc0ze20nmf0diq0cnk0mj71kbz0]
ということで、次はgetActivitiesの中身を実装する。
.
0 コメント:
コメントを投稿