آلبوم ها را مدیریت کنید

در Google Photos، می‌توانید عکس‌ها و سایر موارد رسانه‌ای را با استفاده از آلبوم‌ها سازماندهی کنید. یک آیتم رسانه ای را می توان با یک یا چند آلبوم مرتبط کرد. برای شروع مرتبط کردن آیتم های رسانه ای با آلبوم، ابتدا باید آلبوم را ایجاد کنید.

محدوده مجوز مورد نیاز

برای ایجاد یک آلبوم، برنامه شما باید حداقل یکی از حوزه های مجوز زیر را درخواست کند:

  • photoslibrary.appendonly
  • photoslibrary.sharing

برای تغییر عنوان یا عکس روی جلد آلبوم‌ها پس از ایجاد، از محدوده photoslibrary.edit.appcreateddata استفاده کنید.

ایجاد یک آلبوم جدید

برای ایجاد یک آلبوم، با albums.create تماس بگیرید و title اضافه کنید. توجه داشته باشید که title به 500 کاراکتر محدود شده است.

تماس یک آلبوم را برمی گرداند. برنامه شما می‌تواند شناسه آلبوم را از این اطلاعات ذخیره کند و از آن برای آپلود موارد رسانه در آلبوم خاص استفاده کند.

باقی مانده

در اینجا یک هدر برای درخواست 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"
}

جاوا

try {
  Album createdAlbum = photosLibraryClient.createAlbum("My Album");
  // The createdAlbum object contains properties of an album
  String productUrl = createdAlbum.getProductUrl();
  // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use
  String albumCoverImage = createdAlbum.getCoverPhotoBaseUrl() + "=w2048-h1024";
  boolean isWriteable = createdAlbum.getIsWriteable();
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    $newAlbum = PhotosLibraryResourceFactory::album("My Album");
    $createdAlbum = $photosLibraryClient->createAlbum($newAlbum);
    // The createdAlbum object contains properties of an album
    $albumId = $createdAlbum->getId();
    $productUrl = $createdAlbum->getProductUrl();
    // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use
    $albumCoverImage = $createdAlbum->getCoverPhotoBaseUrl() . '=w2048-h1024';
    $isWriteable = $createdAlbum->getIsWriteable();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

تغییر عناوین آلبوم و عکس های جلد

برای تغییر عنوان آلبوم یا عکس روی جلد، یک album update call با شناسه آلبوم برقرار کنید و عنوان جدید یا شناسه مورد رسانه عکس روی جلد جدید را در درخواست اضافه کنید. برای ایجاد تغییر، باید از محدوده مجوز photoslibrary.edit.appcreateddata استفاده کنید.

عنوان آلبوم نمی تواند بیش از 500 کاراکتر باشد. موارد رسانه جلد باید متعلق به مالک آلبوم باشد و متعلق به آلبومی باشد که برای آن کاور خواهد بود.

باقی مانده

در اینجا یک هدر درخواست PATCH برای به روز رسانی title آلبوم و coverPhotomediaItemId وجود دارد.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

این درخواست مشخص می کند که چه ویژگی هایی با اضافه کردن یک فیلد ماسک به روز می شوند که با پارامترهای updateMask در URL نشان داده شده است. پارامتر 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"
}

جاوا

try {
  // Update the cover photo of the album given a MediaItem object.
  Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, newCoverMediaItem);

  // Alternatively, you can update the cover photo of the album given a media item ID.
  // The specified media item identifier must be not null or empty.
  // Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, "new-cover-media-item-id");
} catch (ApiException e) {
  // Handle error
}
try {
  // Update the title of the album.
  // The new title must not be null or empty.
  Album updatedAlbum = photosLibraryClient.updateAlbumTitle(album, "new-album-title");
} catch (ApiException e) {
  // Handle error
}

PHP

try {

    // ID of the album to update.
    $albumId = "ALBUM_ID";

    // Media item ID of the new cover photo.
    // Must not be null or empty.
    $newCoverMediaItemId = "new-cover-media-item-id";

    // Update the cover photo of the album.
    $mediaItem = $photosLibraryClient->updateAlbumCoverPhoto($albumId, $newCoverMediaItemId);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}
try {

    // ID of the album to update.
    $albumId = "ALBUM_ID";

    // New title of the album.
    // Must not be null or empty.
    $newTitle = "new-album-title";

    // Update the title of the album.
    $mediaItem = $photosLibraryClient->updateAlbumTitle($albumId, $newTitle);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

افزودن آیتم های رسانه ای به آلبوم

می‌توانید با فراخوانی albums.batchAddMediaItems ، موارد رسانه را از کتابخانه Google Photos کاربر به آلبوم اضافه کنید. آیتم های رسانه ای به ترتیبی که در این فراخوان داده شده به انتهای آلبوم اضافه می شوند.

اگر یک مورد رسانه یا آلبوم نامعتبر مشخص شود، کل درخواست ناموفق خواهد بود. موفقیت جزئی پشتیبانی نمی شود.

هر آلبوم می تواند حداکثر 20000 آیتم رسانه ای داشته باشد. درخواست برای افزودن موارد بیشتر که از این حد فراتر می‌رود با شکست مواجه می‌شوند.

توجه داشته باشید که فقط می توانید موارد رسانه ای را که توسط برنامه شما آپلود شده اند به آلبوم هایی که برنامه شما ایجاد کرده است اضافه کنید. آیتم های رسانه نیز باید در کتابخانه کاربر باشد. برای آلبوم‌هایی که به اشتراک گذاشته می‌شوند، یا باید متعلق به کاربر باشند یا کاربر باید شریکی باشد که قبلاً به آلبوم ملحق شده است.

برای افزودن آیتم های رسانه ای به یک آلبوم، با شناسه آیتم های رسانه و آلبوم با albums.batchAddMediaItems تماس بگیرید.

باقی مانده

در اینجا یک هدر برای درخواست 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 را برمی گرداند.

جاوا

try {
  // List of media item IDs to add
  List<String> mediaItemIds = Arrays
      .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID");

  // ID of the album to add media items to
  String albumId = "ALBUM_ID";

  // Add all given media items to the album
  photosLibraryClient.batchAddMediaItemsToAlbum(albumId, mediaItemIds);

} catch (ApiException e) {
  // An exception is thrown if the media items could not be added
}

PHP

try {

    // List of media item IDs to add
    $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"];

    // ID of the album to add media items to
    $albumId = "ALBUM_ID";

    // Add all given media items to the album
    $response = $photosLibraryClient->batchAddMediaItemsToAlbum($albumId, $mediaItemIds);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle Error
}

حذف موارد رسانه از آلبوم

با فراخوانی albums.batchRemoveMediaItems می توانید موارد رسانه ای را که از آلبوم اضافه کرده اید حذف کنید.

اگر موارد رسانه نامعتبر مشخص شود، کل درخواست ناموفق خواهد بود. موفقیت جزئی پشتیبانی نمی شود.

توجه داشته باشید که فقط می‌توانید موارد رسانه‌ای را حذف کنید که برنامه شما به یک آلبوم اضافه کرده یا در آلبومی به عنوان بخشی از آپلود ایجاد شده‌اند . برای آلبوم‌هایی که به اشتراک گذاشته می‌شوند، فقط در صورتی می‌توانید موارد اضافه شده توسط سایر همکاران را حذف کنید که از طرف مالک آلبوم اقدام کنید.

برای حذف آیتم های رسانه از یک آلبوم، با شناسه های آیتم های رسانه و آلبوم با albums.batchRemoveMediaItems تماس بگیرید.

باقی مانده

در اینجا یک هدر برای درخواست 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 را برمی گرداند.

جاوا

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
}