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

2009年7月18日土曜日

[Apache Shindig][お勉強][OpenSocial] メモ58 DataRequest.newFetchPeopleRequestのサーバ側実装(1)

多分、newFetchPeopleRequestが発行されると、
JSON-RPCでpeople.getがリクエストされるんじゃないかと。

それはどうでも良いとして、サーバ側は、


org.apache.shindig.social.opensocial.spi.PersonService


を実装したクラスのgetPeopleメソッドがコールされる。

このgetPeopleのシグネチャは以下。

Future<RestfulCollection<Person>> getPeople(Set userIds, GroupId groupId,
CollectionOptions collectionOptions, Set<String> fields, SecurityToken token)
throws ProtocolException;


うへー。

UserIdは"VIEWER"、"OWNER"とか。
GroupIdは、"FRIENDS"とか"ALL"とか"SELF"とかが設定されている。
fieldsはnewFetchPeopleRequestの第二引数で指定した、

opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS

の対応する値がセットされている。

tokenはiframeにセットしたstパラメータの値に対応するSecurityTokenオブジェクト。

collectionOptionsというのは、、、不明
* どの項目でソートするかより親しい友達順(topFriends)か名前順(name)か。
* ソートの順序(昇順か降順か)
* フィルター、
* 最大件数、
* 最初に表示するデータのインデックス、
* updatedSince
というのが入ってくる模様。
多分、PersonServiceをコールするPersonHandlerを見れば分かると思う。

ということで見てみようっと。

--
というか、newFetchPeopleRequestを

idSpecParam[opensocial.IdSpec.Field.GROUP_ID] = opensocial.IdSpec.PersonId.FRIENDS;

でコールしたのに、サーバ側には、GroupIdに"SELF"が設定されている!

なんで??

--

idSpecParam[opensocial.IdSpec.Field.GROUP_ID] = opensocial.IdSpec.GroupId.FRIENDS;

が正解。

.

0 コメント: