จัดการอัลบั้ม

ใน Google Photos คุณสามารถจัดระเบียบรูปภาพและรายการสื่ออื่นๆ โดยใช้อัลบั้มได้ สามารถเชื่อมโยงรายการสื่อกับอัลบั้มได้อย่างน้อย 1 รายการ วิธีเริ่มการเชื่อมโยง รายการสื่อที่มีอัลบั้ม คุณต้องสร้างอัลบั้มก่อน

ขอบเขตการให้สิทธิ์ที่จำเป็น

หากต้องการสร้างอัลบั้ม แอปของคุณต้องขอรายการต่อไปนี้อย่างน้อย 1 รายการ ขอบเขตการให้สิทธิ์:

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