Medya paylaşma

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Uygulamanız tarafından oluşturulan albümler kullanıcılar tarafından paylaşılabilir. Söz konusu kullanıcılar albümde yorum yapabilir veya kendi medya öğelerine katkıda bulunabilirler.

Google Fotoğraflar Kitaplığı API'si üzerinden albüm paylaşabilmek için uygulamanızın şu işlemleri yapması gerekir:

  1. Bir kullanıcı adına albüm oluşturun.
  2. İlgili albümü paylaşılan olarak ayarlayın.

Gerekli kimlik doğrulama kapsamı

İçerik paylaşabilmek için uygulamanızın photoslibrary.sharing yetkilendirme kapsamı istemesi gerekir.

Albüm paylaşma

Albüm paylaşmadan önce aşağıdaki noktaları göz önünde bulundurun:

  • Uygulamanız yalnızca oluşturduğu albümleri paylaşabilir. Google Fotoğraflar dahil olmak üzere diğer uygulamalar tarafından oluşturulan albümler, uygulamanız tarafından paylaşılamaz.
  • Uygulamanız, Library API aracılığıyla bir albüm paylaştığında herkesin albüme erişmek için kullanabileceği bir paylaşılabilir URL oluşturulur.
  • Albümün sahibi, API üzerinden paylaşılan albümler için bağlantı paylaşımını devre dışı bırakabilir veya Google Fotoğraflar uygulamasında albümün paylaşımını iptal edebilir. Bu durum, uygulamanızın Google Play'de yeni kullanıcılara katılmasını engelleyebilir.

Albüm paylaşmak için:

  1. Paylaşılan bir albüm oluşturmak için kullanıcı deneyimi kurallarına uyun ve kullanıcıdan açıkça izin alın.
  2. Albümü oluşturun ve albumId öğesini kaydedin. Albümü zaten oluşturduysanız kullanıcının albümlerini listeleyerek albumId alabilirsiniz.
  3. Alakalı albumId özelliğini ve ayarlamak istediğiniz paylaşım seçeneklerini kullanarak albums.share numaralı telefonu arayın.
  4. Yanıtta shareToken değerini kaydedin. Paylaşım jetonu, paylaşılan bir albümün farklı kullanıcı hesaplarında kullanılabilen tanımlayıcısıdır.
  5. Başka bir kullanıcı artık uygulamanızla kimlik doğrulaması yapabilir, ardından shareToken kullanarak paylaşılan albümün katılabilir, ayrılabilir veya ayrıntıları alabilir.

Paylaşım seçenekleri

sharedAlbumOptions parametresini kullanarak albüm paylaşırken aşağıdaki seçenekler ayarlanabilir. Seçenekler açıkça belirlenmemişse varsayılan değerler kullanılır.

Özellik Varsayılan değer Açıklama
isCollaborative false Diğer Google Fotoğraflar kullanıcılarının paylaşılan albüme içerik ekleyip ekleyemeyeceğini belirler.
isCommentable false Diğer Google Fotoğraflar kullanıcılarının paylaşılan albümle ilgili yorum yapıp yapamayacağını belirler.

Örnek istek

Aşağıdaki istek, seçeneklerle albums.share numaralı telefonu arayarak bir albümü paylaşıyor. Albümün paylaşım özelliklerini açıklayan yanıtta shareInfo özelliği döndürülür.

REST

Bir albümü paylaşmak için POST isteği başlığı aşağıda verilmiştir:

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

İstek gövdesinde paylaşım seçeneklerini belirtin.

{
  "sharedAlbumOptions": {
    "isCollaborative": "true",
    "isCommentable": "true"
  }
}

Bu istek, aşağıdaki yanıtı döndürür:

{
  "shareInfo": {
    "sharedAlbumOptions": {
      "isCollaborative": "true",
      "isCommentable": "true"
    },
    "shareableUrl": "shareable-url",
    "shareToken": "share-token",
    "isJoinable": "true-if-users-can-join-album",
    "isJoined": "true-if-user-is-joined-to-album",
    "isOwned": "true-if-user-owns-album"
  }
}

Java

try {

  SharedAlbumOptions options =
          // Set the options for the album you want to share
          SharedAlbumOptions.newBuilder()
          .setIsCollaborative(true)
          .setIsCommentable(true)
          .build();
  ShareAlbumResponse response = photosLibraryClient.shareAlbum(albumId, options);

  // The response contains the shareInfo object, a url, and a token for sharing
  ShareInfo info = response.getShareInfo();
  // Link to the shared album
  String url = info.getShareableUrl();
  String shareToken = info
  // The share token which other users of your app can use to join the album you shared
      .getShareToken();
  SharedAlbumOptions sharedOptions = info
      // The options set when sharing this album
      .getSharedAlbumOptions();

} catch (ApiException e) {
  // Handle error
}

PHP

// Set the options for the album you want to share
$options = new SharedAlbumOptions();
$options->setIsCollaborative(true);
$options->setIsCommentable(true);
try {
    $response = $photosLibraryClient->shareAlbum($albumId, ['sharedAlbumOptions' => $options]);
    // The response contains the shareInfo object, a url, and a token for sharing
    $shareInfo = $response->getShareInfo();
    // Link to the shared album
    $url = $shareInfo->getShareableUrl();
    // The share token which other users of your app can use to join the album you shared
    $shareToken = $shareInfo->getShareToken();
    // The options set when sharing this album
    $sharedOptions = $shareInfo->getSharedAlbumOptions();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Paylaşılan albüm özellikleri

Uygulamanız tarafından oluşturulan ve paylaşılan albümlerde, album etiketini döndüren tüm yanıtlar ek bir özellik (shareInfo) içerir. Bu özellik, albümler paylaşılır, listelenir veya alılırken döndürülür.

Aşağıdaki tabloda shareInfo özellikleri listelenmiştir:

Özellikler
sharedAlbumOptions Bir kullanıcının paylaşılan bir albüme medya öğesi ekleyebilmesini veya yorum yapabilmesini sağlayan seçenekler.
shareableUrl

Paylaşılan Google Fotoğraflar albümü için bir bağlantı. Bağlantıya sahip olan herkes albümün içeriğini görüntüleyebilir, bu nedenle dikkatle yaklaşılmalıdır.

shareableUrl alanı, yalnızca albümde bağlantı paylaşımı açıksa döndürülür. Bir kullanıcı, bağlantıyla paylaşılmamış bir albüme zaten katılmışsa bunun yerine erişmek için albümün productUrl özelliğini kullanabilir.

Sahibi Google Fotoğraflar uygulamasında bağlantı paylaşımını devre dışı bırakmışsa veya albüm paylaşımı kaldırılmışsa shareableUrl geçersiz olur.

shareToken

Sahibi olan bir kullanıcı adına paylaşılan bir albümün katılımı, ayrılması veya ayrıntıları almak için kullanılan jeton.

Sahibi Google Fotoğraflar uygulamasında bağlantı paylaşımını devre dışı bırakmışsa veya albüm paylaşımı kaldırılmışsa shareToken geçersiz olur.

isJoinable Albüme kullanıcılar katılabilirse True.
isJoined Kullanıcı albüme katılırsa True. Bu durum, albüm sahibi için her zaman geçerlidir.
isOwned True Albümün sahibi kullanıcıysa.

Bir albümü paylaşmaya son verme

Uygulamanızın önceden paylaştığı bir albümün paylaşımını kaldırmak için albüm albumId'ı kullanarak albums.unshare adlı kişiyi arayın.

Albümün artık paylaşılmamasına ek olarak aşağıdaki durumlar da meydana gelecek:

  • Sahip olmayan tüm kullanıcılar albüme erişimi kaybedecektir. Buna, albümü Google Fotoğraflar uygulaması üzerinden özel olarak paylaşmış olan kullanıcılar dahildir.
  • Sahip olmayan kullanıcıların eklediği tüm içerikler albümden kaldırılacak.
  • Kullanıcı daha önce albümün içeriğini kitaplığına eklediyse içeriğin kitaplığında saklanır.
  • Albümün paylaşım jetonu ve paylaşılabilir URL geçersiz kılınacak.

Örnek istek

REST

Bir albümün paylaşımını kaldırmak için POST isteği üstbilgisini aşağıda bulabilirsiniz:

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

İstek metni boş olmalıdır.

İstek başarılı olduysa HTTP başarı durumu koduyla boş bir yanıt döndürür. İstek başarısız olduysa hata mesajıyla birlikte bir HTTP hata durumu kodu döndürür.

Java

try {
  // If this call is not successful, an exception is raised
  photosLibraryClient.unshareAlbum(albumId);
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Mark the album as private and no longer shared
    // If this call is not successful, an exception is raised
    $photosLibraryClient->unshareAlbum($albumId);
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Paylaşılan albümler ve paylaşım jetonları alınıyor

Paylaşılan bir albümün ayrıntıları (paylaşım jetonu dahil) uygulamanız bir albüm paylaştığında döndürülür. Bu ayrıntıları daha sonra aşağıdaki yöntemlerle de alabilirsiniz.

Uygulamanıza şu anda bağlı olan kullanıcı albümün sahibiyse veya albüme katıldıysa:

Uygulamanıza şu anda bağlı olan kullanıcı albüme katılmamışsa geçerli bir paylaşım jetonu kullanarak paylaşılan albümün ayrıntılarını sharedAlbums.get ile alabilirsiniz.

Örnek istek

REST

shareToken adlı sanatçının albümünü alma isteği şöyle:

GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token

İstek başarılı olursa paylaşılan album ayrıntılarını döndürür.

Java

try {
  // Get a shared album from its share token
  Album sharedAlbum = photosLibraryClient.getSharedAlbum(shareToken);

  String id = sharedAlbum.getId();
  String title = sharedAlbum.getTitle();
  // ...

} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Get the album from a share token
    $album = $photosLibraryClient->getSharedAlbum($shareToken);

    // Get some properties of an album
    $productUrl = $album->getProductUrl();
    $title = $album->getTitle();

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Paylaşılan bir albüme katılma

Uygulamanız, albüm paylaşma jetonunu kullanarak bir kullanıcı adına paylaşılan bir albüme katılabilir. Bunun için aşağıdaki koşulların geçerli olması gerekir:

  • Uygulamanız albümü oluşturdu ve paylaştı.
  • Albüme katılmak istediğiniz kullanıcının sahibi değil. Yani albümdeki isOwned alanı shareInfo yanlıştır.
  • Paylaşım jetonu geçerli.
  • Albümün shareInfo alanındaki isJoinable alanı doğrudur.

REST

Paylaşılan bir albüme katılmak için POST isteği başlığı aşağıdadır:

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

İstek gövdesinde shareToken değerini belirtin.

{
  "shareToken": "share-token"
}

POST isteği, uygulamanızın kullanıcı adına katıldığı paylaşılan album değerini döndürür.

Java

try {
  // Join the shared album using the share token obtained when sharing the album
  // If this call is not successful, an exception is raised
  JoinSharedAlbumResponse response = photosLibraryClient.joinSharedAlbum(shareToken);
  Album joinedAlbum = response.getAlbum();
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    $response = $photosLibraryClient->joinSharedAlbum($shareToken);
    // Join the shared album using the share token obtained when sharing the album
    // If this call is not successful, an exception is raised
    $joinedAlbum = $response->getAlbum();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Paylaşılan bir albümden ayrılma

Uygulamanız, albüm paylaşım jetonunu kullanarak kullanıcı adına paylaşılan albümden ayrılabilir. Bunun için aşağıdaki koşulların geçerli olması gerekir:

  • Uygulamanız albümü oluşturup paylaştı.
  • Kullanıcı şu anda albüme katıldı. Yani albümün shareInfo bölümündeki isJoined alanı doğrudur.
  • Uygulamanıza bağlı kullanıcı, albümün sahibi değil. Diğer bir deyişle, albümün shareInfo alanındaki isOwned alanı yanlıştır.

REST

Paylaşılan bir albümden ayrılmak için POST isteği başlığı aşağıda verilmiştir:

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

İstek gövdesinde shareToken değerini belirtin.

{
  "shareToken": "share-token"
}

İstek başarılı olduysa HTTP başarı durumu koduyla boş bir yanıt döndürür. İstek başarısız olduysa hata mesajıyla birlikte bir HTTP hata durumu kodu döndürür.

Java

try {
  // Leave a shared album using its share token
  // If this call is not successful, an exception is raised
  photosLibraryClient.leaveSharedAlbum(shareToken);
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Leave the shared album using the share token obtained when sharing the album
    // If this call is not successful, an exception is raised
    $photosLibraryClient->leaveSharedAlbum($shareToken);
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Paylaşılan medya öğesi özellikleri

Uygulamanız tarafından paylaşılan albümlere ait medya öğeleri, ek bir özellik (contributorInfo) içerir. Bu özellik yalnızca paylaşılan bir albümün içeriğini listelerken eklenir.

contributorInfo özelliği, albüme medya öğesini ekleyen kullanıcının adını ve profil resmine bir temel URL içerir.

Aşağıda bununla ilgili bir örnek verilmiştir:

{
  "id: "media-item-id",
  ...,
  "mediaMetadata": {
    ...
  }
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters",
    "displayName": "name-of-user"
  }
}