Opensocial入門を読んで見た(第三章、第四章)

前回のエントリーの続きです。

OpenSocial入門 ~ソーシャルアプリケーションの実践開発
OpenSocial入門 ~ソーシャルアプリケーションの実践開発

第三章

「OpenSocia API」ではアプリをインストールをした人が「OWNER」、アプリを利用した人が「VIEWER」となる。
アプリ開発者は、実行時に「誰に実行されているのか?」「誰に対する機能なのか?」を意識して開発する必要がある。

OpenSocialアプリケーションを開発には以下の環境が必要になります。

  1. Gadgets XMLファイルを配置するWebサーバー
  2. OpenSocialアプリを登録実行するOpensocial対応SNS
  3. 使い慣れたテキストエディタ

[cc lang="xml"] Gadget XMLファイルの基本構成    機能の宣言やアプリケーションの説明 [/cc] CDATAの中はHTMLで記述するが、タグのみ。
外部から参照する場合は
タグをつける

gadgets.util.registerOnLoadHander()関数を使い最初に実行されるJavaScriptを指定する。

第四章

ModulePrefsタグ内の記述
OpenSpcialアプリケーションのメタ要素が記述される。作成者の名前、アプリで使用する機能の宣言など。
titleとdescriptionの記述内容はSNS運営側の審査で詳しく精査される可能性が強いので、明瞭かつ簡単に記載する必要がある。この審査内容はauthor_emailで記載したメールアドレス宛に通知されるので必ず記載しよう。

[TABLE=2]

「ModulePrefs」中の小タグの記述 Requierタグは複数記述することができます。 [TABLE=4]

Contentタグ

ContentタグにはHTMLとURLと種別が分かれている。

主な属性

  • type:コンテンツの種別 html or rul と値を入れる
  • view:コンテンツの適用先となるビューの名前。home, profile, canvas, preview
  • href :外部コンテンツのURL

[cc lang="xml"] <![CDATA[ htmlで記述 ]]> [/cc]

種別をURLにした場合は指定した外部のコンテンツをそのまま表示します。ただし、OpenSocial Javascript APIが使えないのでSNSから会員情報や友達情報が利用できません。

アクセス元の国によって表記を変えることができます。その際はダグを使い、langやcountryで予め指定をしておき実際に表示するXMLファイルを変更します。

ユーザー設定項目を定義する

ユーザーの設定によりOpenSocialアプリの動作を変えたい場合、前もって登録してもらいます。 Moduleタグの小タグであるUserPrefタグで指定します。 display属性に"enum"を指定した場合、EnumValueタグを使い選択肢を作らなくてはいけません。 [cc lang="xml"] [/cc]

コンテンツを事前ローディング

外部から画像、音楽、動画を読み出す際にどうしても時間がかかる場合があります。利用者にそれを感じさせないようにすることが開発者には必要です。 そのためOpenSocialには、動的コンテンツの場合は起動時に事前に先読みを行う機構が、静的コンテンツにはURLをキャッシュ対応のURLに置換する機構が提供されています。

動的コンテンツの場合 先読みする機構はタグ内の小タグを使います。これにより実際にHTMLが呼ばれた際に、すでにで読み込まれていますので利用者に負担をかけずに処理を行えます。 href属性を使って、事前に読み込みこみたい外部URLを指定します。

[cc lang="xml"] [/cc]

にはhref属性以外にも、authz属性で外部コンテンツへの認証に関してどのようにするか指定できます。

静的コンテンツの場合 キャッシングに関する機構は、タグ内の小タグを使います。

[cc lang="xml"] .png$ //キャッシングの対象とするURLの条件を正規表現で指定する .jpg$// キャッシング対象としないURLの条件を正規表現で指定する img// キャッシングの対象とするHTMLの要素。複数指定可能。 86400 // キャッシングの有効時間を秒で指定。

[/cc]

ライフサイクルイベント

利用者がインストールした時や、逆にアンインストールした時などが発生した時開発者に通知する機構があります。 これにより、もしアンインストールされたら会員の蓄積したデータをDBから削除するなど何らかの対応をとることができます。 タグ内にLink要素を使って設定できます。

[cc lang="xml"]   [/cc]

[TABLE=5]