スパイスラボ神部です。
OpenSocial 初歩の範疇で、OpenSocial で Owner と Viewer の ID を取得する方法をまとめてみたいと思います。
Owner ID を取得する
てきとうな View にこんなコードを書けばオーナーIDは取得できます。
<![CDATA[
<script type="text/javascript">
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('OWNER'), 'owner');
req.send(function(data) {
var owner = data.get('owner').getData();
var oid = owner.getField(opensocial.Person.Field.ID);
});
</script>
<div id="displayId"></div>
]]>
ひとつ注意したいのは、デバッグ用にネストされた関数の中で document.write してしまうとなぜかコンテナの処理が止まってしまうことがあるところ。
対策としては、外部に空の DIV などをつくっておいて、そこに innerHTML で挿入すると大丈夫です。
Viewer ID を取得する
OWNER と VIEWER では newFetchPersonRequest 引数が若干違います。
<![CDATA[
<script type="text/javascript">
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(
opensocial.IdSpec.PersonId.VIEWER), 'viewer');
req.send(function(data) {
var viewer = data.get('viewer').getData();
var vid = viewer.getField(opensocial.Person.Field.ID);
document.getElementById("displayId2").innerHTML = vid;
});
</script>
<div id="displayId2"></div>
]]>
こんな感じです。簡単ですネ!
でも ID の取得ひとつでこれだけコードを書かなきゃ行けないのも、ちょっと冗長な気もします。どうなんでしょう?
関連記事


