メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年7月4日土曜日

[Apache Shindig][お勉強][OpenSocial] メモ39 opensocial.

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

0 コメント: