http://wiki.opensocial.org/index.php?title=OpenSocial_Tutorial
にある、サンプルをとりあえず実行してみる。
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Hello">
<Require feature="opensocial-0.8" />
</ModulePrefs>
<Content type="html"><![CDATA[
<h1>Hello, World</h1>
<script type="text/javascript">
gadgets.util.registerOnLoadHandler(init);
function init() {
loadFriends();
}
function loadFriends() {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), 'viewer');
var viewerFriends = opensocial.newIdSpec({ "userId" : "VIEWER", "groupId" : "FRIENDS" });
var opt_params = {};
opt_params[opensocial.DataRequest.PeopleRequestFields.MAX] = 100;
req.add(req.newFetchPeopleRequest(viewerFriends, opt_params), 'viewerFriends');
req.send(onLoadFriends);
}
function onLoadFriends(data) {
var viewer = data.get('viewer').getData();
var viewerFriends = data.get('viewerFriends').getData();
html = new Array();
html.push('<ul>');
viewerFriends.each(function(person) {
if (person.getId()) {
html.push('<li>' + person.getDisplayName() + "</li>");
}
});
html.push('</ul>');
document.getElementById('friends').innerHTML = html.join('');
}
</script>
<div id="friends"></div>
]]>
</Content>
</Module>
な感じ。
実効すると、サーバ側に、
POST /social/rpc?st=unknown%3Aroot%3A0%3Adefault%3Ahttp%253A%252F%252Flocalhost%252Fhello.xml%3A0
なリクエストが飛んでくる。
ちなみにShindig使ってみているけど、勉強のため、そのまま使っているわけではなく、
SpringのControllerでShindigのServletと同じことをやっているもんで、
まだ、/social/rpcは用意していないので、エラーになるけど。
(SpringとGuiceの両方を有効にしているんで、DIが意味不明な感じだけど。)
--
なんとなく、securityToken(stパラメータ)でどのガジェットからのリクエストか
判断できるっぽい。もちろん詐称Welcomeだけど。
--
try {
JSONObject request = JsonConversionUtil.fromRequest(servletRequest);
dispatch(request, null, servletRequest, servletResponse, token);
} catch (JSONException je) {
sendJsonParseError(je, servletResponse);
}
って書いてあるので、やはりsecurityTokenで判断しているのかな?
tokenがsecurityToken。
.
0 コメント:
コメントを投稿