OpenSocial v0.8.1 仕様が公開されました。

※ 翻訳については一部ベータ版からの修正内容が反映されていない箇所があります。誤り を見つけた際はご指摘ください。

リリースノートは下記の通り:

OpenSocial リリースノート #

OpenSocial の仕様変更点

  • サーバーサイド API の変更 サーバー間通信機能に、よりシンプルなバッチ処理を可 能とする JSON RPC プロトコルが追加されました。名前の一貫性を保つため、RESTful API は今後 RESTful プロトコルと呼ばれます。
  • OpenSocial ID で許可する文字に -, _, . を追加 OpenSocial ID は従来の 英数字に加え、-, _, および.を含むことができます。
  • Portable Contacts 仕様にアライン

互換性のない変更点

  • RESTful プロトコルの非互換性 RESTful プロトコルから多くのクエリやレスポン スフィールドが名称変更/削除されました。RESTful プロトコルの変更点全てを下記に 示します。

RESTful プロトコルの変更点

  • PortableContacts との互換性 RESTful プロトコルを実装することで、コンテナは PortableContacts 仕様と技術的互換性を持つこと になります。下記の変更点はこの互換性実現のために実装されました。
  • 新しいレスポンス型 format=xml リクエストが format=xml パラメータをサ ポートするようになりました。People のリクエストは format=xmlformat=json で行われなければなりません。
  • コンテナはランダムアクセスなページングを実装しなければならない コンテナは startIndexitemsPerPage パラメータを使ったページングの実装が必須となり ました。
  • コレクションのフィールドから rel=next リンクが廃止 このパラメータは JSON コ レクションレスポンスから削除されました
  • コレクションのフィールドから author が廃止 このパラメータは JSON コレクショ ンレスポンスから削除されました
  • コンテナは全てのコンタクトを一度に返せなければならない コンテナは一度のリ クエストで全てのコンタクトを返すことができなければなりませんが、パフォーマンス 上の理由から返すコンタクトの数に上限を設けることができます。
  • itemsPerPage のデフォルト値 itemsPerPage パラメータがリクエストで指定 されていない場合のデフォルト値はコンテナに依存します。
  • ソートパラメータの変更点 orderBy パラメータは sortBy に名称変更されまし た。また、sortOrder パラメータが追加され、ascending (昇順) と descending (降順) を与えることができます。デフォルトは ascending です。
  • updatedSince パラメータの追加 クエリで、指定された期間内に更新されたエン トリのみを返すよう指定することができます。
  • ソートおよびフィルタリングが行われたかをレスポンスに表示 ソートやフィルタ リングはコンテナにとってコストが高いため、実際にリクエストと同じ内容のフィルタ リングが行われたかを示す、トップレベルのレスポンスフィールド filtered, sorted, updatedSince がレスポンスに含まれるようになりました
  • 削除された Person オブジェクトのリクエストが可能に 新しく追加された @deleted セレクタと updatedSince パラメータを利用することで、指定された日 時以降に削除されたコンタクトの取得が可能になりました。
  • Person レスポンスは最低でも idname フィールドを含まなければならな い コンテナは name および id フィールドを Person データに含まなけれ ばなりません。
  • profileUrl は URL でもなければならない PersonprofileUrl フィー ルドで返される値は typeprofile のエントリの urls フィールドでも返さ れなければなりません。
  • Personphotos フィールド追加 Personurl, type, primary サブフィールドを持ったエントリのリストを含む、photos フィールドが追加されま した。 Person オブジェクトで thumbnailUrl フィールドが返された場合、この urltypethumbnail であるエントリの photos フィールドにも存在し なければなりません。
  • Personims フィールド追加 Personvalue, type, primary の サブフィールドを持った ims フィールドが追加されました。type 値としてよく使 用されるaim, gtalk, icq, xmpp, msn, skype, qq, yahooが定義され ていますが、新しい type を定義することもできます。
  • Personaccounts フィールド追加 Person にその人がアカウントを所有 する他のサービスを表す accounts フィールドが追加されました。このフィールド はdomain, userid, username, primary サブフィールドを持ったエントリのリ ストを含みます。
  • Person の複数フィールドに primary サブフィールド追加 Personemails, urls, ims, phoneNumbers, addresses, organizations, photos フィールドに、リスト中どのフィールドが主たるものか (存在する場合のみ) を示す primary サブフィールドが追加されました。
  • jobs および schools の複数フィールドを organizations に統合 jobsお よび schools のエントリは organizations という名前の Organization 構造の 配列にまとめられました。Organization 構造はjobschoolを正規値とする typeサブフィールドで拡張されます。
  • Person の複数フィールドを value フィールドに標準化 Person の複数 フィールドで主となるテキスト値は value というサブフィールドに保存されるべき です。これは emails.address, phoneNumbers.number, urls.address およびす べての {Enum}.key フィールドのインスタンスを {Enum}.value に名称変更するこ とが必要となります。addresses, accounts, organizations フィールドは複雑 なため、value フィールドのコンセプトが存在しません。ソートやフィルタリングを 行うため、これらのフィールドの "主たる" サブフィールドに該当する部分は、 addresses.formatted, accounts.domain, organizations.name となります。
  • Person gender フィールドは文字列に Person では gender を文字列 フィールドとして扱い、maleおよびfemaleを正規値とします。
  • Addresses から extendedAddress または poBox サブフィールドが廃止 streetAddress サブフィールドに完全な (複数行の場合もある) 住所を保存すること ができるようになったため、Address サブフィールドの extendedAddress および poBox が廃止されました。
  • unstructuredAddressformatted に変更 AddressunstructuredAddress サブフィールドは formatted に名称変更されました。
  • dateOfBirthbirthday に変更 PersondateOfBirth フィールド はbirthday に名称変更されました。
  • timeZone を utcOffset に変更 PersontimeZone フィールドは utcOffset に名称変更されました。
  • nickname の定義 Personnickname フィールドは "現実世界でこの人 物を指すくだけた方法" と定義されました。
  • ** Person フィールドのデフォルトセット** Person リクエストでクエリパラ メータ fields がない場合、JS API のデフォルトと一致させるため、最小限必要と されるデフォルトセットとして id, name, thumbnailUrl が定義されました。
  • supportedFields のクエリ RESTful プロトコルにコンテナがサポートする Person および Activity フィールドをリストで返す /people/@supportedFields および/activities/@supportedFields というエンドポイントが定義されました。
  • indexBy の廃止 indexBy クエリパラメータは廃止されました。
  • **Activity.title フィールドは HTML 文字列に **Activity タイトルフィールド は複雑なデータオブジェクトではなく、HTML マークアップを含む文字列として扱われ るようになります。
  • unstructuredformatted に変更 名前フィールドの unstructuredformatted に変更されました。
  • displayName フィールドを追加 Person フィールドのトップレベルフールド として displayName が追加されました。

RPC プロトコルの変更点

  • RPC プロトコルが登場 バッチ処理や複雑なサーバー間処理を簡易化するためのオ プションとして、新しく RPC プロトコルが登場しました。

opensocial.* JavaScript の変更点

  • 新しい opensocial.IdSpec.GroupId enum IdSpec オブジェクトを構成するた め、opensocial.IdSpec.GroupId.FRIENDS または opensocial.IdSpec.GroupId.SELF を使用することができます。
  • supportsField のレスポンスを定義 opensocial.Environment.supportsField() の戻り値として、コンテナがフィールド をサポートする場合は true、そうでない場合は false を返すことが定義されまし た。

gadgets.* JavaScript の変更点

  • gadgets.* JavaScript API に変更点はありません。

Gadgets XML の変更点

  • <Preload>要素で OAuth をサポート <Preload> 要素の authz 属性で oauth 値がサポートされるようになりました。 authzoauth の場合、 oauth_service_name, oauth_token_name, oauth_request_token, oauth_request_token_secret 属性が取得されます。これらの属性は gadgets.io.makeRequest パラメータに一致するものと同様の意味とデフォルト値を 持ちます。