Medyayı paylaşın

Uygulamanız tarafından oluşturulan albümler, izin verme seçenekleriyle birlikte kullanıcılar arasında paylaşılabilir bu kullanıcılar albüme yorum yapabilir veya kendi medya öğeleriyle katkıda bulunabilirler.

Google Photos Library API aracılığıyla albüm paylaşmak için uygulamanızın şunları yapması gerekir:

  1. Bir kullanıcı adına albüm oluşturun.
  2. Söz konusu albümü "paylaşılan" olarak ayarlayın.
ziyaret edin.

Gerekli kimlik doğrulama kapsamı

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

Albüm paylaşma

Bir 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. Diğer uygulamalar tarafından oluşturulan albümler Google Fotoğraflar da dahil olmak üzere, uygulamanız tarafından paylaşılamaz.
  • Uygulamanız Library API aracılığıyla albüm paylaştığında paylaşılabilir URL herkesin albüme erişmek için kullanabileceği bir dosya oluşturulur.
  • API aracılığıyla paylaşılan albümlerde albüm sahibi: bağlantı paylaşımını devre dışı bırakma veya Google Fotoğraflar uygulamasında albümü paylaşmayı uygulamanın yeni kullanıcılara katılmasını engeller.

Bir albümü paylaşmak için:

  1. Şunu izleyin: Kullanıcı deneyimi kuralları ve paylaşılan bir albüm oluşturmak için kullanıcıdan açıkça izin alması gerekir.
  2. Albümü oluşturun, ve albumId için kayıt yapın. Albümü daha önce oluşturduysanız şunları yapabilirsiniz: albumId değerini şuna kadar al: kullanıcının albümlerini listeleme.
  3. albums.share numaralı telefonu şunu kullanarak ara: ve alakalı albumId istediğiniz paylaşım seçeneklerini ayarlandı.
  4. shareToken değeri olabilir. Paylaşım jetonu, paylaşılan bir albümün tanımlayıcısıdır bir değişiklik yapabilirsiniz.
  5. Başka bir kullanıcı artık uygulamanızla kimlik doğrulayabilir. Ardından, join, leave veya ayrıntıları alma (shareToken kullanarak) paylaşılan albümün.

Paylaşım seçenekleri

Bir albüm paylaşmak için sharedAlbumOptions parametresinden sonra bir değer girin. Seçenekler açıkça belirtilmezse 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üm.
isCommentable false Diğer Google Fotoğraflar kullanıcılarının paylaşılan albüm.

Örnek istek

Aşağıdaki istekte, seçeneklerle birlikte albums.share araması yapılarak bir albüm paylaşılıyor. CEVAP shareInfo mülkü isimli yanıt, albümün paylaşım mülkleri.

REST

Bir albümü paylaşmak için kullanılan 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ümler için album döndür ek bir mülk ekleyin, shareInfo. Bu mülk paylaşım sırasında döndürülür. giriş veya albümleri alma.

Aşağıdaki tabloda shareInfo özellikler:

Özellikler
sharedAlbumOptions Kullanıcının medya ekle öğe ekleme veya paylaşılan bir albüme yorum yapma
shareableUrl

Paylaşılan Google Fotoğraflar albümünün bağlantısı. Bağlantıya sahip olan herkes bu nedenle özel olarak ele alınmalıdır.

shareableUrl alanı yalnızca albüm sahip bağlantı paylaşımı açık. Bir kullanıcı daha önce bağlantıyla paylaşılmazsa, albümün productUrl öğesini kullanarak bu uygulamaya erişebilirsiniz.

Sahip, bağlantıyı devre dışı bırakırsa shareableUrl geçersiz hale gelir Google Fotoğraflar uygulamasından paylaşabiliyorsanız veya albümün paylaşımdan kaldırılmış olması gerekir.

shareToken

Bu jeton, join, ayrıl, veya alın olmayan bir kullanıcı adına paylaşılan albümün ayrıntılarını tıklayın.

Sahip, bağlantıyı devre dışı bırakırsa shareToken geçersiz hale gelir Google Fotoğraflar uygulamasından paylaşabiliyorsanız veya albümün paylaşımdan kaldırılmış olması gerekir.

isJoinable Albüme kullanıcılar katılabiliyorsa True.
isJoined Kullanıcı albüme katıldıysa True. Bu her zaman geçerlidir.
isOwned Albümün sahibi kullanıcıya aitse True.

Bir albümün paylaşımını geri alma

Uygulamanızın daha önce paylaştığı bir albümün paylaşımını geri almak için şu numarayı arayın: albums.unshare şunu kullanarak: albümün albumId.

Albüm artık paylaşılmayacak. Ek olarak şunlar da paylaşılacak: ne olur?

  • Sahip olmayan tüm kullanıcılar albüme erişimini kaybeder. Buna, daha önce albümü vardı özel olarak paylaşıldı Google Fotoğraflar uygulaması üzerinden yapabilirsiniz.
  • Sahip olmayan kişiler tarafından eklenen tüm içerikler albümden kaldırılacak.
  • Bir kullanıcı daha önce albümün içeriğini kitaplığına eklediyse içerik kendi kitaplıklarında saklanır.
  • Albümün paylaşım jetonu ve paylaşılabilir URL'si geçersiz kılınacak.

Örnek istek

REST

Bir albümün paylaşımını geri almak için POST isteği üstbilgisini burada 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ıysa HTTP ile boş bir yanıt döndürür başarı durum kodu. İstek başarılı değilse bir HTTP döndürür hata mesajı içeren bir hata durum kodu görüntülenir.

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ümleri alma ve jetonları paylaşma

Paylaşılan albümün ayrıntıları, ve paylaşım jetonu da dahil olmak üzere tüm bildirimler, uygulamanız bir albüm paylaştığında döndürülür. Şunları yapabilirsiniz: bunları daha sonra aşağıdaki yöntemlerle de alabilirsiniz.

Uygulamanıza bağlı olan kullanıcı uygulamanın sahibiyse veya albüm:

  • albums.get için alakalı albumId.
  • Varsa albums.list ile albümdeki medya öğeleridir.
  • Entegre sharedAlbums.list Kullanıcının katıldığı veya sahip olduğu tüm paylaşılan albümleri döndürür. Geri almak için yalnızca uygulamanızın oluşturduğu albümler için excludeNonAppCreatedData parametresinden sonra bir değer girin.
  • sharedAlbums.get ile paylaşma jetonundan yararlanırsınız.

Uygulamanıza bağlı olan kullanıcı albüme katılmamışsa şunları yapabilirsiniz: şununla paylaşılan bir albümün ayrıntılarını al: sharedAlbums.get: geçerli bir paylaşım jetonudur.

Örnek istek

REST

shareToken adlı sanatçıya ait albüm alma isteği:

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

İstek başarılı olursa paylaşılan album ayrıntıları.

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, paylaşılan bir albüme albüm paylaşımıyla bir kullanıcı adına katılabilir jeton. Bunu yapmak için aşağıdaki koşulların sağlanması gerekir:

  • Uygulamanızda oluşturup paylaştı albümünüz.
  • Albümün sahibi olmasını istediğiniz kullanıcı, albümün sahibi değil. Yani, Albümün isOwned alanı shareInfo yanlıştır.
  • Paylaşım jetonu geçerli.
  • Albümün shareInfo öğesindeki isJoinable alanı doğru.
ziyaret edin.

REST

Paylaşılan bir albüme katılmak için kullanılacak POST isteği üstbilgisi:

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

İstek gövdesinde shareToken özelliğini belirtin.

{
  "shareToken": "share-token"
}

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

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 albümden ayrılma

Uygulamanız, albümün paylaşım özelliğini kullanarak bir kullanıcı adına paylaşılan albümden ayrılabilir jeton. Bunu yapmak için aşağıdaki koşulların sağlanması gerekir:

  • Uygulamanız albümü oluşturup paylaştı.
  • Kullanıcı şu anda albüme katılmış durumda. Yani, isJoined alanı öğesinin shareInfo doğru olduğundan emin olun.
  • Uygulamanıza bağlanan kullanıcı, albümün sahibi değil. Yani, Albümün shareInfo öğesindeki isOwned alanı yanlış.

REST

Paylaşılan bir albümden ayrılmak için kullanılacak POST isteği üstbilgisi:

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

İstek gövdesinde shareToken özelliğini belirtin.

{
  "shareToken": "share-token"
}

İstek başarılıysa HTTP ile boş bir yanıt döndürür başarı durum kodu. İstek başarılı değilse bir HTTP döndürür hata mesajı içeren bir hata durum kodu görüntülenir.

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

Şuna ait medya öğeleri: uygulamanız tarafından paylaşılan albümler ek bir özellik içerir, contributorInfo. Bu özellik yalnızca paylaşılan bir albümün içeriği.

contributorInfo özelliği, medyayı ekleyen kullanıcının adını içerir. öğe ekler ve bir profilinin temel URL'sini görüntüsüdür.

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