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:
- Bir kullanıcı adına albüm oluşturun.
- İ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:
- 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.
- Albümü oluşturun ve
albumId
öğesini kaydedin. Albümü zaten oluşturduysanız kullanıcının albümlerini listeleyerekalbumId
alabilirsiniz. - Alakalı
albumId
özelliğini ve ayarlamak istediğiniz paylaşım seçeneklerini kullanarakalbums.share
numaralı telefonu arayın. - 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. - 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.
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 |
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 |
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:
- Alakalı
albumId
kullanılanalbums.get
ile. albums.list
ile albümde medya öğeleri varsa.- Kullanıcının katıldığı veya sahip olduğu tüm paylaşılan albümleri döndüren
sharedAlbums.list
ile. Yalnızca uygulamanızın oluşturduğu albümleri almak içinexcludeNonAppCreatedData
parametresini kullanın. sharedAlbums.get
kullanarak bir paylaşım jetonu kullanma.
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ındakiisJoinable
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ündekiisJoined
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ındakiisOwned
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" } }