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

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

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

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

לתשומת ליבכם: אפשר להסיר רק פריטי מדיה שהאפליקציה שלכם נוסף לאלבום או שנרשמו נוצר באלבום כחלק Upload (העלאה). לאלבומים משותפים, תוכלו להסיר פריטים ששותפי עריכה אחרים הוסיפו רק אם פועלים מטעם owner (בעלים) של האלבום.

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

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
}