Feb 28, 2008

OpenSocial JavaScript API にチャレンジ(5)

Orkut が管理している情報を外部サーバへ引き渡す

今回は Orkut の管理している情報(Orkut のユーザID)を外部サーバに引き渡してみた。

remoteservice.xml

Orkut へのディプロイ方法は前回と同じ。

<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Remote Service">
    <Require feature="opensocial-0.7"/>
    <Require feature="settitle"/>
    <Require feature="views"/>
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
<script>
// <!--
function getElement (id) {
  if (document.getElementById){
    return document.getElementById(id);
  } else if (document.all) {
    return document.all[id];
  } else if (document.layers) {
    return document.layers[id];
  } else {
    return null;
  }
}

function loadData() {
  var request = opensocial.newDataRequest();
  request.add(request.newFetchPersonRequest('OWNER'), 'owner');
  request.send(onLoadData);
}

function onLoadData(data) {
  // get owner info
  var owner = data.get('owner').getData();
  var ownerId = owner.getId();
  var ownerDisplayName = owner.getDisplayName();
  
  var s = "<dl>";
  s += "<dt>id</dt><dd>" + ownerId + "</dd>";
  s += "<dt>name</dt><dd>" + ownerDisplayName + "</dd>";
  s += "</dl>";

  getElement('owner').innerHTML = s;

  getElement('childframe').src = "http://www.in-vitro.jp/blog/entries/SNS/20080228_01/"
                                 + ownerId + ".html";
}
gadgets.util.registerOnLoadHandler(loadData);
loadData();
// -->
</script>
      <body>
        My local profile:<br />
        <div id="owner"></div><br />
        <br />
        My remote profile:<br />
        <iframe id="childframe"/><br />
      </body>
    ]]>
  </Content>
</Module>

[Orkut のユーザID].html

remoteservice.xml で指定した場所に設置。例) http://www.in-vitro.jp/blog/entries/SNS/20080228_01/[OrkutのユーザID].html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
  これはリモートサーバにあるプロフィール情報です。
</body>
</html>

実行結果

[remote service]
外部サーバに Orkut の管理している情報を引き渡すことができた。

TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/SNS/20080228_01.trackback
Post a comment

writeback message: Ready to post a comment.