例えば自分の情報と友達の情報を取得することがでてくるが、
その際、以下のように2つのメソッドを書いていた。
function getMyInfo(){ var params = {}; var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER,params), "viewer"); req.send(function(data){ if (data.hadError()) { var msg = data.getErrorMessage(); // エラー発生時の処理 } else { var item = data.get("viewer"); if (!item.hadError()) { var viewer = item.getData(); myID = viewer.getId(); myName = viewer.getDisplayName(); myURL = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL); } }); } function friendNumCheck(){ var fparams = {}; fparams[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.VIEWER; fparams[opensocial.IdSpec.Field.GROUP_ID] = "FRIENDS"; var fetchOpt = {}; fetchOpt[opensocial.DataRequest.PeopleRequestFields.MAX] = 1; var idSpec = opensocial.newIdSpec(fparams); var req = opensocial.newDataRequest(); req.add(req.newFetchPeopleRequest(idSpec, fetchOpt), "friends"); req.send(function(data){ if (data.hadError()) { var msg = data.getErrorMessage(); } else { var friends = data.get('friends') if (!friends.hadError()) { var friend = friend.getData(); friendID = friend.getId(); friendName = friend.getDisplayName(); friendURL = friend.getField(opensocial.Person.Field.THUMBNAIL_URL); } } }); }よくよく考えたら、'viewer','friends'のリクエストをreq.addして一回のreq.send(function(data))とする方がリクエスト回数も少ないし、待つ時間も少なくて済む。
まだまだあまり理解できていないなぁ。。。
function getInfo(){ var params = {}; var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER,params), "viewer"); var fparams = {}; fparams[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.VIEWER; fparams[opensocial.IdSpec.Field.GROUP_ID] = "FRIENDS"; var fetchOpt = {}; fetchOpt[opensocial.DataRequest.PeopleRequestFields.MAX] = 1; var idSpec = opensocial.newIdSpec(fparams); var req = opensocial.newDataRequest(); req.add(req.newFetchPeopleRequest(idSpec, fetchOpt), "friends"); req.send(function(data){ if (data.hadError()) { var msg = data.getErrorMessage(); // エラー発生時の処理 } else { var item = data.get("viewer"); if (!item.hadError()) { var viewer = item.getData(); myID = viewer.getId(); myName = viewer.getDisplayName(); myURL = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL); var friends = data.get('friends') if (!friends.hadError()) { var friend = friend.getData(); friendID = friend.getId(); friendName = friend.getDisplayName(); friendURL = friend.getField(opensocial.Person.Field.THUMBNAIL_URL); } }); }
0 件のコメント:
コメントを投稿