ניהול אלבומים

ב-Google Photos, אפשר לארגן תמונות ופריטי מדיה אחרים באמצעות אלבומים. ניתן לשייך פריט מדיה לאלבום אחד או יותר. כדי להתחיל לשייך פריטי מדיה לאלבום, ראשית עליך ליצור את האלבום.

היקפי ההרשאות הנדרשים

כדי ליצור אלבום, האפליקציה צריכה לבקש לפחות אחד מהיקפי ההרשאות הבאים:

  • photoslibrary.appendonly
  • photoslibrary.sharing

כדי לשנות את השם או את תמונת השער של האלבומים אחרי שהם יוצרים, צריך להשתמש בהיקף photoslibrary.edit.appcreateddata.

יצירת אלבום חדש

כדי ליצור אלבום, צריך להתקשר ל-albums.create ולכלול את title. לתשומת ליבך, האורך של title מוגבל ל-500 תווים.

השיחה תחזיר אלבום. האפליקציה יכולה לאחסן את מזהה האלבום מהמידע הזה ולהשתמש בו כדי להעלות פריטי מדיה לאלבום הספציפי.

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

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 תווים לכל היותר. פריטי המדיה של העטיפה חייבים להיות בבעלות הבעלים של האלבום, והם צריכים להיות שייכים לאלבום שעבורו הם יהיו שער.

REST

הנה כותרת של בקשת 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 Photos של המשתמש, באמצעות 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.

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 עם המזהים של הפריטים ושל האלבום.

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
}