http://code.google.com/intl/ja/apis/opensocial/docs/0.8/reference/
に、
<static> opensocial.Environment getEnvironment()
このガジェットの現在の環境を取得します。
って書いてある。
なんのこっちゃ。
とりあえず、
<?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">
var tmp = opensocial.getEnvironment();
console.log(tmp);
</script>
]]>
</Content>
</Module>
と書いて、Shindigで表示してみる。
すると、、
Firebugのコンソールに
Object domain=shindig supportedFields=Object
なんてふうに表示される。
Googleのドキュメントには、
String getDomain()
「orkut.com」、「myspace.com」など、現在のドメインを返します。
とある。
domainの意味がここで初めてわかった。。。
なんで「shindig」って指定するんだろうと思ってたんだけど、いわゆるdomainでよいのね。。
container.jsの
"opensocial-0.8" : {
// Path to fetch opensocial data from
// Must be on the same domain as the gadget rendering server
"path" : "http://%host%/social",
"domain" : "shindig",
"enableCaja" : false,
"supportedFields" : {
"person" : ["id", {"name" : ["familyName", "givenName", "unstructured"]}, "thumbnailUrl", "profileUrl"],
"activity" : ["id", "title"]
}
},
あたりで指定できそうだ。
とりあえず、domainを変えてみる。
container.jsは、
"opensocial-0.8" : {
// Path to fetch opensocial data from
// Must be on the same domain as the gadget rendering server
"path" : "http://%host%/social",
"domain" : "qsdn.co.jp",
"enableCaja" : false,
"supportedFields" : {
"person" : ["id", {"name" : ["familyName", "givenName", "unstructured"]}, "thumbnailUrl", "profileUrl"],
"activity" : ["id", "title"]
}
},
として、で、
GadgetのXMLは、
<?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">
var tmp = opensocial.getEnvironment();
alert(tmp.getDomain());
</script>
]]>
</Content>
</Module>
な感じ。
実行すると、qsdn.co.jpってalertが表示される。
ほっほう。
supportsFieldの方は、、
supportsField
Boolean supportsField(objectType, fieldName)指定されたオブジェクト タイプについて、指定されたフィールドがこのコンテナでサポートされている場合は true を返します。
って書いてあるね。
objectTypeに指定できるのは、
<static> object ACTIVITY
<static> object ADDRESS
<static> object BODY_TYPE
<static> object EMAIL
<static> object FILTER_TYPE
<static> object MEDIA_ITEM
<static> object MESSAGE
<static> object MESSAGE_TYPE
<static> object NAME
<static> object ORGANIZATION
<static> object PERSON
<static> object PHONE
<static> object SORT_ORDER
<static> object URL
とのこと。なんだこれ。
shindigデフォルトの設定だと、PersonとActivityらしい。
"supportedFields" : {
"person" : ["id", {"name" : ["familyName", "givenName", "unstructured"]}, "thumbnailUrl", "profileUrl"],
"activity" : ["id", "title"]
}
と書いてあるので、personは、id、name、thumbnailUrl、profileUrlがtrueかな?
で、activityはidとtitleがtrueかな?
alert(opensocial.getEnvironment().supportsField(opensocial.Environment.ObjectType.PERSON, opensocial.Person.Field.ID));
な感じにコールすると。
ほほー。
trueが返されているのがわかる。
opensocial.Environment.ObjectTypeとか、opensocial.Person.Fieldとかにどんな
Constがあるかはドキュメントに書いてあると。
次はActivityを保存、読み込みできるようにしてみようっと。
.