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

   

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

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

前回の復習を簡単に

OpenSocialはSNSアプリの共通規格である。
実際に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は複数名にまたがるリクエストをするときに使う。例、友達一覧など
ともに第二引数でどんな情報を取得したいかの内容を指定する。



Related Posts Plugin for WordPress, Blogger...