Album support (0.9)

OpenSocial v0.9から追加になったAlbum APIについて、そのドラフトから日本語訳を起こしてみました。

[Album support in OpenSocial]

OpenSocial v0.9では、複数のMediaItem(写真、動画、そして音声クリップ)により構成されるAlbumをサポートするための機能が追加されました。これは「Albums API」と呼ばれています。この仕様には、JavaScript API、RESTful API、そしてJSON-RPC APIのそれぞれに対して定義が行われました。

Albums APIでは、以下の操作が規定されています。

  • Albumの作成、更新、削除
  • あるAlbumへのMediaItemの追加、更新、削除

■ JavaScript API

Albumサポートは、新しく追加されたopensocial.Albumクラスによって提供されます。Albumは、本質的に、複数のMediaItem(イメージ、動画、音声トラック)の集合です。あるAlbumに対して、opensocial.Album.getField()関数やopensocial.Album.setField()関数を呼び出すことで、各フィールドにアクセスすることが可能です。それらのフィールドは、opensocial.Album.Fieldクラスに定数として定義されています。string型のIDフィールドは、Albumを特定するための文字列であり、必須項目です。その他に、オプションとして以下のフィールドが定義されています。

THUMBNAIL_URL – string型です。Albumのカバー画像のURLです。
CAPTION – string型です。Albumのタイトル文字列です。
DESCRIPTION – string型です。Albumの説明文です。
LOCATION – opensocial.Address型です。Albumに対応する位置情報です。
OWNER_ID – string型です。Albumの所有者のIDです。
MEDIA_TYPE – MediaItem.TYPEの配列です。Album内のMediaItem群の種別です。
MEDIA_ITEM_COUNT – integer型です。Album内のアイテム数です。

あるAlbumは、opensocial.MediaItemクラスのオブジェクトを複数保持することができます。このクラスは従来から提供されていましたが、opensocial.MediaItem.Fieldに定義されるフィールドがいくつか追加されています。string型のIDフィールドは、MediaItemを特定するための文字列であり、必須項目です。その他に、オプションとして以下のフィールドが定義されています。

CAPTION – string型です。MediaItemの説明文です。
CREATED – string型です。MediaItemの作成日時です。UTCでコンテナにより与えられます。
LAST_UPDATED – string型です。MediaItemの更新日時です。UTCでコンテナにより与えられます。
THUMBNAIL_URL – string型です。MediaItemのサムネイル画像のURLです。
DESCRIPTION – string型です。MediaItemの説明文です。
DURATION – integer型です。音声または動画クリップのためのフィールドであり、再生時間の長さを秒で示します。もし長さが不明の場合は、-1がセットされます。
LOCATION – opensocial.Address型です。MediaItemに関連づけられた位置情報です。
LANGUAGE – string型です。ISO 639-3フォーマットで表現される、MediaItemに関連づけられた言語情報です。
ALBUM_ID – string型です。MediaItemが所属するAlbumです。
FILE_SIZE – long型です。バイト数を示します(もしバイト数が不明の場合は-1がセットされます)。
START_TIME – string型です。ストリームまたはライブコンテンツのためのフィールドであり、コンテンツが利用可能な時間を表します。
RATING – integer型です。0〜10のスケールで表現される、MediaItemの平均レートです。
NUM_VOTES – integer型です。投票を受けた投票数です。
NUM_COMMENTS – integer型です。写真へのコメント数です。
NUM_VIEWS – integer型です。MediaItemの閲覧数です。

以下のフィールドも引き続き存在します。

TYPE – MediaItem.TYPE型です。MediaItemの種別です(AUDIO/VIDEO/IMAGE)。
MIME_TYPE – string型です。MediaItemのmime-typeです。
URL – string型です。MediaItemのURLです。

AlbumおよびMediaItemは、以下の関数で生成されます。

opensocial.newAlbum() – opensocial.Albumオブジェクトを生成します。
opensocial.newMediaItem() – opensocial.MediaItemオブジェクトを生成します。

■■ APIs

AlbumやMediaItemを扱うためのAPIは、DataRequestクラスに追加されています。

opensocial.DataRequest.newFetchAlbumsRequest(idSpec, opt_params)

newFetchAlbumsRequest()関数は、複数のAlbum情報を要求するためのDataRequestオブジェクトを生成します。opt_params引数には、以下の情報を指定することが可能です。

opensocial.Album.Field.ID – 取得するAlbumのIDの配列です。もし無指定の場合は全てのAlbumの取得要求になりますが、ページングのために結果数は限定されます。
opensocial.Album.Field.MEDIA_TYPE – 取得するAlbumの種別を指定するためのMediaItem.TYPE値の配列です。

opensocial.DataRequest.newFetchMediaItemsRequest(idSpec, albumId, opt_params)

newFetchMediaItemsRequest()関数を使うことで、Album内のMediaItemのリストを取得することができます。opt_params引数には、以下の情報を指定することが可能です。

opensocial.MediaItem.Field.ID – 取得するMediaItemのIDの配列です。もし無指定の場合は全てのMediaItemの取得要求になりますが、ページングのために結果数は限定されます。
opensocial.MediaItem.Field.MEDIA_TYPE – 取得するMediaItemの種別を指定するためのMediaItem.TYPE値の配列です。

FilterやFIRST、MAXを使ったテクニックは、FetchAlbumsやFetchMediaItemsにおいて、ページングのために利用することができます。

opensocial.DataRequest.newCreateAlbumRequest(idSpec, album)

新しいAlbumを作成し、結果として作られたAlbumのIDを返します。コンテナは、ViewerがViewer自身のためのみAlbumを作成することが許可される、といった制限を実装します。

opensocial.DataRequest.newCreateMediaItemRequest(idSpec, albumId, mediaItem)

新しいMediaItemをAlbum内に作成し、作られたAlbumのIDを返します。コンテナは(newCreateAlbumRequest()関数のような)制限を実装します。

opensocial.DataRequest.newUpdateAlbumRequest(idSpec, albumId, fields)

パラメータで指定された項目を更新します。結果はvoidです。以下の項目はセットできません: MEDIA_ITEM_COUNT、OWNER_ID、ID。コンテナは(newCreateAlbumRequest()関数のような)制限を実装します。

opensocial.DataRequest.newUpdateMediaItemRequest(idSpec, albumId, mediaItemId, fields)

パラメータで指定された項目を更新します。結果はvoidです。以下の項目はセットできません: ID、CREATED、ALBUM_ID、FILE_SIZE、NUM_COMMENTS。コンテナは(newCreateAlbumRequest()関数のような)制限を実装します。

opensocial.DataRequest.newDeleteAlbumRequest(idSpec, albumId)

指定されたAlbumを削除します。結果はvoidです。コンテナは(newCreateAlbumRequest()関数のような)制限を実装します。

opensocial.DataRequest.newDeleteMediaItemRequest(idSpec, albumId, mediaItemId)

指定されたAlbumに含まれるMediaItemを削除します。結果はvoidです。コンテナは(newCreateAlbumRequest()関数のような)制限を実装します。

■■ Examples

■■■ ユーザのAlbumの取得

■■■ Album内のMediaItemの取得

■ RESTful API

新しい”album”サービスは、AlbumやMediaItemの要求をハンドルするために追加されました。そのサービスは、ディスカバリXML文書内のエントリを通じて発見されます。

userId: ユーザID
groupId:
@self: ユーザ(ユーザID)のAlbum
@friends, @all、またはグループID: ユーザのグループ内の全ての人々が所有するAlbum [これのサポートはオプションです]
optionalAlbumId: 特定のAlbumを参照するためのAlbum ID
optionalMediaItemId: Album内の特定のMediaItemを参照するためのMediaItem ID

操作:
GET /album/@me/@self は、Albumの配列を取得します
POST /album/@me/@self は、新しいAlbumを作成します
GET /album/@me/@self/albumId は、特定のAlbumのみを返します
PUT /album/@me/@self/albumId は、Albumを更新します
DELETE /album/@me/@self/albumId は、Albumを削除します

GET /album/@me/@self/albumId/mediaitem は、Album内のMediaItemを返します
POST /album/@me/@self/albumId/mediaitem は、新しいMediaItemの作成に使われます
GET /album/@me/@self/slbumId/mediaitem/mediaItemId は、MediaItemを返します
PUT /album/@me/@self/slbumId/mediaitem/mediaItemId は、MediaItemを更新します
DELETE /album/@me/@self/slbumId/mediaitem/mediaItemId は、MediaItemを削除します

■■ Examples

IDが44332211のAlbumを得るための GET /album/@me/@self/44332211 は、以下をもたらします。

IDが11223344のMediaItemを得るための GET /album/@me/@self/44332211/mediaitem/11223344 は、以下をもたらします。

■ RPC API

以下のメソッドは、Albumをサポートします:
album.get、album.update、album.create、そしてalbum.delete
mediaitem.get、mediaitem.update、mediaitem.create、そしてmediaitem.delete

以下の例は、album.* の操作のためのものですが、mediaitem.* に関しても流儀は同じです。userid(@me)やgroupid(@self)の初期値は、指定されなかった場合に適用されます。

■■ album.get

リクエスト

レスポンス

■■ album.update

Albumを更新するためのリクエストは、更新されたAlbumの情報を指定します。もし成功した場合は、空の結果を返します。

リクエスト

レスポンス

■■ album.create

Owner IDおよびAlbum IDは指定されるべきではありません。Owner IDやAlbum IDは自動的に割り当てられます。Album IDが結果として返却されます。

リクエスト

レスポンス

■■ album.delete

削除のリクエストは、Albumを特定するためにAlbum IDを要求します。正常に完了した際には、空の結果が返されます。

リクエスト

レスポンス

Trackback URL:



Get Adobe Flash playerPlugin by wpburn.com wordpress themes