Google フォトでは、アルバムを使用して写真やその他のメディア アイテムを整理できます。メディア アイテムは、1 つ以上のアルバムに関連付けることができます。メディア アイテムとアルバムを関連付けるには、まずアルバムを作成する必要があります。
必要な認可スコープ
アルバムを作成するには、photoslibrary.appendonly
スコープが必要です。
作成後にアルバムのタイトルやカバー写真を変更するには、photoslibrary.edit.appcreateddata
スコープが必要です。
スコープの詳細については、認可スコープをご覧ください。
新しいアルバムを作成
アルバムを作成するには、albums.create
を呼び出して title
を含めます。title
は最大 500 文字に制限されています。
この呼び出しではアルバムが返されます。アプリはこの情報からアルバム ID を保存し、特定のアルバムにメディア アイテムをアップロードするために使用できます。
REST
POST リクエストのヘッダーは次のようになります。
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
リクエスト本文は次のようになります。
{ "album": { "title": "new-album-title" } }
成功した場合、レスポンスはアルバムを返します。
{ "productUrl": "album-product-url", "id": "album-id", "title": "album-title", "isWriteable": "whether-you-can-write-to-this-album" }
アルバムの詳細を取得する
アプリによって作成された既存のアルバムの詳細を取得するには、albums.get
を呼び出し、取得するアルバムの albumId
を含めます。
この呼び出しはアルバムを返します。
REST
GET リクエストのヘッダーは次のようになります。
GET https://photoslibrary.googleapis.com/v1/albums/{albumId} Content-type: application/json Authorization: Bearer oauth2-token
リクエストの本文は次のようになります。
{ "albumId": album-id }
成功した場合、レスポンスはアルバムを返します。
{ "id": album-id, "title": album-title, "productUrl": album-product-url, "mediaItemsCount": media-items-count, "coverPhotoBaseUrl": cover-photo-base-url, "coverPhotoMediaItemId": cover-photo-media-item-id }
アルバムのタイトルとカバー写真を変更する
アルバムのタイトルまたはカバー写真を変更するには、アルバムの ID を使用して album update
call
を作成し、新しいタイトルまたは新しいカバー写真のメディア アイテム ID をリクエストに含めます。変更を行うには、photoslibrary.edit.appcreateddata
承認スコープを使用する必要があります。
アルバム タイトルは 500 文字以内で指定してください。カバー メディア アイテムは、アルバムのオーナーが所有し、カバーとなるアルバムに属している必要があります。
REST
次に、アルバムの title
と coverPhotomediaItemId
を更新するための PATCH リクエスト ヘッダーを示します。
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
このリクエストでは、URL の updateMask
パラメータで指定されるフィールド マスクを使用して、更新するプロパティを指定します。更新するアルバム プロパティごとに updateMask
パラメータを渡す必要があります。
更新するプロパティごとに、その詳細をリクエストの本文に含めます。
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
成功すると、更新された album
の詳細がレスポンスで返されます。
{ "id": "album-id", "title": "new-album-title", "productUrl": "album-product-url", "isWriteable": "true-if-user-can-write-to-this-album", "mediaItemsCount": "number-of-media-items-in-album", "coverPhotoBaseUrl": "cover-photo-base-url_use-only-with-parameters", "coverPhotoMediaItemId": "new-cover-media-item-id" }
アルバムにメディア アイテムを追加する
albums.batchAddMediaItems
を呼び出すと、アプリで作成したメディア アイテムをアプリで作成したアルバムに追加できます。メディア アイテムは、この呼び出しで指定された順序でアルバムの最後に追加されます。
無効なメディア アイテムまたはアルバムを指定すると、リクエスト全体が失敗します。 部分的な成功はサポートされていません。
各アルバムには最大 20,000 個のメディア アイテムを追加できます。この制限を超えるアイテムを追加するリクエストは失敗します。
アルバムにメディア アイテムを追加するには、メディア アイテムとアルバムの識別子を指定して albums.batchAddMediaItems
を呼び出します。
REST
POST リクエストのヘッダーは次のようになります。
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
リクエストの本文は次のようになります。
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
成功した場合、レスポンスは空の JSON レスポンスと成功の HTTP ステータスを返します。
アルバムからメディア アイテムを削除する
albums.batchRemoveMediaItems
を呼び出すと、アプリで作成されたアルバムからアプリで作成されたメディア アイテムを削除できます。
無効なメディア アイテムを指定すると、リクエスト全体が失敗します。部分的な成功はサポートされていません。
アルバムからメディア アイテムを削除するには、メディア アイテムとアルバムの識別子を指定して albums.batchRemoveMediaItems
を呼び出します。
REST
POST リクエストのヘッダーは次のようになります。
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
リクエストの本文は次のようになります。
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
成功すると、レスポンスは空の JSON レスポンスと HTTP 成功ステータスを返します。
Java
try { // List of media item IDs to remove List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to remove media items from String albumId = "ALBUM_ID"; // Remove all given media items from the album photosLibraryClient.batchRemoveMediaItemsFromAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be removed }
PHP
try { // List of media item IDs to remove $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to remove media items from $albumId = "ALBUM_ID"; // Remove all given media items from the album $response = $photosLibraryClient->batchRemoveMediaItemsFromAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }