Albümleri yönetme

Google Fotoğraflar'da, albümleri kullanarak fotoğrafları ve diğer medya öğelerini organize edebilirsiniz. Bir medya öğesi, bir veya daha fazla albümle ilişkilendirilebilir. Medya öğelerini bir albümle ilişkilendirmeye başlamak için önce albümü oluşturmanız gerekir.

Gerekli yetkilendirme kapsamları

Uygulamanızın albüm oluşturmak için aşağıdaki yetkilendirme kapsamlarından en az birini istemesi gerekir:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Oluşturulan albümlerin başlığını veya kapak fotoğrafını değiştirmek için photoslibrary.edit.appcreateddata kapsamını kullanın.

Yeni albüm oluşturma

Albüm oluşturmak için albums.create numaralı telefonu arayın ve title ekleyin. title metninin 500 karakterle sınırlı olduğunu unutmayın.

Çağrı bir albüm döndürür. Uygulamanız, bu bilgilerdeki albüm kimliğini depolayabilir ve ilgili albüme medya öğeleri yüklemek için bunu kullanabilir.

REST

Aşağıda POST isteği için bir başlık yer almaktadır:

POST https://photoslibrary.googleapis.com/v1/albums
Content-type: application/json
Authorization: Bearer oauth2-token

İsteğin gövdesi aşağıdaki gibi görünür:

{
  "album": {
    "title": "new-album-title"
  }
}

Başarılı olursa yanıt bir albüm döndürür:

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

Albüm başlıklarını ve kapak fotoğraflarını değiştirme

Bir albüm başlığını veya kapak fotoğrafını değiştirmek için albümün tanımlayıcısını kullanarak bir album update call oluşturun ve isteğe yeni başlığı ya da yeni kapak fotoğrafının medya öğesi kimliğini ekleyin. Değişikliği yapmak için photoslibrary.edit.appcreateddata Authorization kapsamını kullanmanız gerekir.

Albüm başlıkları en fazla 500 karakter uzunluğunda olabilir. Kapak medya öğelerinin sahibi albüm sahibi olmalı ve bu öğenin cover'ı olacağı albüme ait olmalıdır.

REST

Aşağıda, bir albümün title ve coverPhotomediaItemId öğelerini güncellemek için YAMA isteği başlığını görebilirsiniz.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

Bu istek, URL'ye updateMask parametreleriyle belirtilen bir alan maskesi ekleyerek hangi özelliklerin güncellendiğini belirler. Güncellenmekte olan her albüm özelliği için updateMask parametresinin iletilmesi gerekir.

Güncellediğiniz her mülk için mülk ayrıntılarını isteğin gövdesine ekleyin:

{
  "title": "new-album-title",
  "coverPhotoMediaItemId": "new-cover-media-item-id"
}

Başarılı olursa yanıt, güncellenmiş album ayrıntılarını döndürür:

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

Bir albüme medya öğeleri ekleme

albums.batchAddMediaItems numarasını arayarak kullanıcının Google Fotoğraflar kitaplığındaki medya öğelerini bir albüme ekleyebilirsiniz. Medya öğeleri, bu çağrıda belirtilen sırayla albümün sonuna eklenir.

Geçersiz bir medya öğesi veya albüm belirtilirse isteğin tamamı başarısız olur. Kısmi başarı desteklenmez.

Her albüm en fazla 20.000 medya öğesi içerebilir. Bu sınırı aşacak daha fazla öğe ekleme istekleri başarısız olur.

Yalnızca uygulamanızın oluşturduğu albümlere uygulamanız tarafından yüklenen medya öğelerini ekleyebileceğinizi unutmayın. Medya öğeleri, kullanıcının kitaplığında da bulunmalıdır. Paylaşılan albümlerin kullanıcıya ait olması veya kullanıcının daha önce albüme katılmış bir ortak çalışan olması gerekir.

Bir albüme medya öğeleri eklemek için medya öğelerinin ve albümün tanımlayıcılarıyla albums.batchAddMediaItems özelliğini çağırın.

REST

Aşağıda POST isteği için bir başlık yer almaktadır:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

İsteğin gövdesi aşağıdaki gibi görünür:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Başarılı olursa yanıt boş bir JSON yanıtı ve HTTP Başarı durumu döndürür.

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
}

Bir albümden medya öğelerini kaldırma

Bir albümden eklediğiniz medya öğelerini albums.batchRemoveMediaItems numaralı telefonu arayarak kaldırabilirsiniz.

Geçersiz medya öğeleri belirtilirse isteğin tamamı başarısız olur. Kısmi başarı desteklenmez.

Yalnızca uygulamanızın bir albüme eklediği veya yükleme işleminin parçası olarak bir albümde oluşturulan medya öğelerini kaldırabileceğinizi unutmayın. Paylaşılan albümlerde, diğer ortak çalışanlar tarafından eklenen öğeleri yalnızca albümün sahibi adına hareket ediyorsanız kaldırabilirsiniz.

Bir albümden medya öğelerini kaldırmak için medya öğelerinin ve albümün tanımlayıcılarıyla albums.batchRemoveMediaItems çağrısı yapın.

REST

Aşağıda POST isteği için bir başlık yer almaktadır:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

İsteğin gövdesi aşağıdaki gibi görünür:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Başarılı olursa yanıt boş bir JSON yanıtı ve HTTP Başarı durumu döndürür.

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
}