OpenSocialについて調べてみた際のメモ 2日目

今日も引き続きOpenSocialを勉強したいです。

OpenSocialを利用してガジェットを作ろう!

前回の復習を簡単に

OpenSocialSNSアプリの共通規格である。 実際にSNSに表示されるガジェッドはxml形式で記載する。 Xmlファイルのcontentタグに実際に表示されるHTMLやJavascriptを記載します。 ownerとviwerの考え方。ownerは画面を貼付けた人。viwerはその画面を見に来た人。 home画面、profile画面でOwenrとviwerの概念が違ってくる。

「誰の情報を表すか」を決めるopensocial.idSpecオブジェクト リクエストの詳細を指定するopt_paramentオブジェクト 一括して処理を送るopensocial.DataRequestオブジェクト

前回の続き、どの情報が欲しいかリクエストの作成

プロフィール情報の取得をリクエストする。 [cc lang="xml"] var req = opensocial.newDataRequest(); // プロフィール情報に関連URLを追加 var opt_params = {}; opt_params[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = [opensocial.Person.Field.URLS]; // オーナーのプロフィール情報を取得するリクエストを生成 var person_request = req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER, opt_params); // オーナーのプロフィール情報を取得するリクエストをリクエストオブジェクトに追加 req.add(person_request, 'owner_self'); [/cc]

req.newFetchPersonRequestである特定の対象者の情報をリクエストできます。 今回の例では 対象者が第一引数に個人を表す文字列,VIEWER/OWNER,またはその人のIDを直接指定します。 内容は第二引数のopt_paramsdです。

req.addに"owner_self"という名前をつけて先ほどのリクエストを全体のリクエスト(req)に追加している。

アプリデータ取得リクエスト [cc lang="xml"] // オーナーの友達を表すIdSpecを生成 var owner_friends = {}; //ユーザーがOwnerで、グループは友達を指定しています。 owner_friends[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.OWNER; owner_friends[opensocial.IdSpec.Field.GROUP_ID] = opensocial.IdSpec.GroupId.FRIENDS; var owner_friends = opensocial.newIdSpec(owner_friends); // 友達一覧を取得するリクエストを生成 var owner_friends_appdata = req.newFetchPersonAppDataRequest(owner_friends, 'id'); // 友達一覧を取得するリクエストをリクエストオブジェクトに追加 req.add(people_request, 'owner_friends_appdata'); [/cc]

GROUP_ID opensocial.IdSpec.GroupId.FRIENDS:オーナーの友達のデータを指定 opensocial.IdSpec.GroupId.SELF:オーナー自身のデータを指定

アプリデータを取得する際は,newFetchPersonAppDataRequestメソッドを使用します。 第一引数にidSpecで欲しいアプリデータをもつ人を指定します。 第二引数でどのデータを取得したいかの「キー」をしています。

リクエストを送信する際は以下のように記載します。 [cc lang="xml"] req.send(callback); [/cc]

重要そうなこと

newFetchPersonRequestはある特定の1人の情報をリクエストするときに使う。 newFetchPeopleRequestは複数名にまたがるリクエストをするときに使う。例、友達一覧など ともに第二引数でどんな情報を取得したいかの内容を指定する。