2009-01-06

opensocial.Environment.getDomain をいろいろなコンテナで試して、どんなドメイン名が取得できるのか調べてみた

opensocial-jquery 0.3.0 JavaScript コンテナセレクタと CSS コンテナセレクタという試み
現在は "ig", "orkut", "hi5" のコンテナしか判別できませんが、代表的なコンテナは評価しつつ追加していきます。MySpace も追加しようと試みてはいますが、iframe@src の内容が iGoogle 仕様とはかなり異なるので、どう判断しようか思案中です。よいアイディアはないでしょうか。
Yoichiro さんのコメント... opensocial.getEnvironment().getDomain()にて、コンテナのドメイン名を取得することができます。
さっそく opensocial.Environment.getDomain をいろいろなコンテナで試して、どんなドメイン名が取得できるのか調べてみました。

調べるために用意したガジェットのソースコードとその結果は、次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="opensocial.Environment.getDomain">
<Require feature="opensocial-0.8" />
</ModulePrefs>
<Content type="html"><![CDATA[
<script type="text/javascript">
console.info(opensocial.getEnvironment().getDomain());
// iGoogle sandbox http://www.google.co.jp/ig => google.com
// Orkut sandbox http://sandbox.orkut.com/ => orkut.com
// Hi5 sandbox http://sandbox.hi5.com/ => hi5.com
// Hi5 sandbox http://betasandbox.hi5.com// => hi5.com
// MySpace Developer Platform
// http://developer.myspace.com/ => myspace.com
</script>
]]></Content>
</Module>

どのコンテナか判別するには、opensocial.Environment.getDomain を使うのが妥当(正解)のようです。Environment というオブジェクト名だけのことはありました。

ただ、サンドボックス固有のドメイン名を表現しないようなので、サンドボックスかどうか判別することはできません。ですので、サンドボックスかどうかの判断は、コンテナごとに固有のルールを発見しないといけませんね。

0 件のコメント: