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 }