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を保存、読み込みできるようにしてみようっと。
.