إدارة الألبومات

في "صور Google"، يمكنك تنظيم الصور وملفات الوسائط الأخرى باستخدام الألبومات. يمكن ربط ملف وسائط بألبوم واحد أو أكثر. لبدء الربط الوسائط مع ألبوم، فيجب إنشاء الألبوم أولاً.

نطاقات التفويض المطلوبة

لإنشاء ألبوم، يجب أن يطلب تطبيقك واحدًا على الأقل من العناصر التالية: نطاقات التفويض:

  • 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"
}

Java

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"
}

Java

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
}

إضافة عناصر الوسائط إلى ألبوم

يمكنك إضافة ملفات وسائط من مكتبة "صور Google" لدى المستخدم إلى ألبوم من خلال: يتصل albums.batchAddMediaItems تتم إضافة عناصر الوسائط إلى نهاية الألبوم بالترتيب الموضح في هذه المكالمة.

سيفشل الطلب بالكامل إذا تم تحديد عنصر وسائط أو ألبوم غير صالح. ولا يمكن تحقيق النجاح الجزئي.

يمكن أن يحتوي كل ألبوم على ما يصل إلى 20,000 ملف وسائط. تطلب إضافة المزيد من العناصر التي سيتجاوز هذا الحد.

لاحظ أنه يمكنك فقط إضافة ملفات الوسائط التي الذي تم تحميله من خلال تطبيقك إلى الألبومات التي يحتوي عليها تطبيقك إنشاء. عناصر الوسائط يجب أن يكون أيضًا في مكتبة المستخدم. بالنسبة إلى الألبومات التي تتم مشاركتها، يجب: مملوكة من المستخدم أو يجب أن يكون المستخدم أحد المتعاونين الذين انضموا إلى الألبوم من قبل.

لإضافة عناصر وسائط إلى ألبوم، يُرجى إجراء مكالمة 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 حالة النجاح

Java

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 حالة النجاح

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
}