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