आपके ऐप्लिकेशन से बनाए गए एल्बम को उपयोगकर्ताओं के बीच शेयर किया जा सकता है. साथ ही, इन्हें शेयर करने के ऐसे विकल्प मौजूद होते हैं जिनसे उपयोगकर्ता, एल्बम में टिप्पणी कर सकते हैं या एल्बम में अपने मीडिया आइटम का योगदान दे सकते हैं.
Google Photos Library API की मदद से कोई एल्बम शेयर करने के लिए, आपके ऐप्लिकेशन को ये काम करने होंगे:
- उपयोगकर्ता की ओर से एल्बम बनाएं.
- उस एल्बम को 'शेयर किया गया' पर सेट करें.
पुष्टि करने का ज़रूरी दायरा
कॉन्टेंट शेयर करने के लिए, आपके ऐप्लिकेशन को photoslibrary.sharing
अनुमति के दायरे का अनुरोध करना होगा.
एल्बम शेयर करना
कोई एल्बम शेयर करने से पहले, इन बातों का ध्यान रखें:
- आपका ऐप्लिकेशन सिर्फ़ अपने बनाए गए एल्बम शेयर कर सकता है. Google Photos जैसे दूसरे ऐप्लिकेशन से बनाए गए एल्बम आपका ऐप्लिकेशन शेयर नहीं कर सकते.
- जब आपका ऐप्लिकेशन Library API की मदद से कोई एल्बम शेयर करता है, तो एक शेयर किया जा सकने वाला यूआरएल जनरेट होता है. इसका इस्तेमाल कोई भी व्यक्ति एल्बम ऐक्सेस करने के लिए कर सकता है.
- एपीआई की मदद से शेयर किए गए एल्बम के लिए, एल्बम का मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर सकता है या उसे शेयर करना बंद कर सकता है. इससे आपका ऐप्लिकेशन, नए उपयोगकर्ताओं को एल्बम में नहीं जोड़ पाएगा.
एल्बम शेयर करने के लिए:
- UX से जुड़े दिशा-निर्देशों का पालन करें और शेयर किया गया एल्बम बनाने के लिए, उपयोगकर्ता से साफ़ तौर पर सहमति लें.
- एल्बम बनाएं और
इसका
albumId
रिकॉर्ड करें. अगर आपने पहले ही एल्बम बना लिया है, तो उपयोगकर्ता के एल्बम की सूची में शामिल करके, उसकाalbumId
वापस पाया जा सकता है. - शेयर करने के विकल्प के साथ-साथ, आपके काम के
albumId
का इस्तेमाल करके,albums.share
को कॉल करें. - रिस्पॉन्स में
shareToken
वैल्यू रिकॉर्ड करें. शेयर टोकन, शेयर किए गए किसी एल्बम के लिए आइडेंटिफ़ायर होता है. इसे अलग-अलग उपयोगकर्ता खातों के साथ इस्तेमाल किया जा सकता है. - अब कोई दूसरा उपयोगकर्ता आपके ऐप्लिकेशन से अपनी पहचान की पुष्टि कर सकता है और शेयर किए गए एल्बम के
shareToken
का इस्तेमाल करके, join, छोड़ें या जानकारी पा सकता है.
शेयर करने के विकल्प
sharedAlbumOptions
पैरामीटर का इस्तेमाल करके, किसी एल्बम को शेयर करते समय इन विकल्पों को सेट किया जा सकता है. अगर विकल्प साफ़ तौर पर सेट नहीं किए गए हैं, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.
प्रॉपर्टी | डिफ़ॉल्ट वैल्यू | ब्यौरा |
---|---|---|
isCollaborative |
false |
सेट करता है कि Google Photos के दूसरे उपयोगकर्ता, शेयर किए गए एल्बम में कॉन्टेंट जोड़ सकते हैं या नहीं. |
isCommentable |
false |
सेट करता है कि Google Photos के दूसरे उपयोगकर्ता, शेयर किए गए एल्बम पर टिप्पणी कर सकते हैं या नहीं. |
अनुरोध का उदाहरण
नीचे दिए गए अनुरोध की वजह से, albums.share
को कॉल करके एक एल्बम शेयर किया जाता है. हालांकि, इसके विकल्पों के बारे में बताया गया है. जवाब के जवाब में shareInfo
प्रॉपर्टी दिखती है, जिसमें एल्बम की शेयर करने वाली प्रॉपर्टी के बारे में जानकारी होती है.
आराम
एल्बम शेयर करने के लिए यहां POST अनुरोध हेडर दिया गया है:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:share Content-type: application/json Authorization: Bearer oauth2-token
अनुरोध के मुख्य हिस्से में, शेयर करने के विकल्प बताएं.
{ "sharedAlbumOptions": { "isCollaborative": "true", "isCommentable": "true" } }
यह अनुरोध मिलने पर यह रिस्पॉन्स मिलता है:
{ "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 }
शेयर किए गए एल्बम की प्रॉपर्टी
आपके ऐप्लिकेशन में बनाए और शेयर किए गए एल्बम के लिए, album
दिखने वाले सभी रिस्पॉन्स में एक अतिरिक्त प्रॉपर्टी, shareInfo
शामिल होती है. एल्बम शेयर करते समय, लिस्टिंग करते समय या retrieving समय, यह प्रॉपर्टी वापस दिखाई जाती है.
यहां दी गई टेबल में
shareInfo
प्रॉपर्टी की सूची दी गई है:
प्रॉपर्टी | |
---|---|
sharedAlbumOptions |
ऐसे विकल्प जिनसे यह जानकारी मिलती है कि क्या कोई व्यक्ति, शेयर किए गए किसी एल्बम में मीडिया आइटम जोड़ सकता है या उस पर टिप्पणी कर सकता है. |
shareableUrl |
शेयर किए गए Google Photos एल्बम का लिंक. जिन लोगों के पास यह लिंक है वे एल्बम का कॉन्टेंट देख सकते हैं. इसलिए, एल्बम का इस्तेमाल सावधानी से करें. एल्बम
पर
लिंक शेयर करने की सुविधा
चालू होने पर ही, अगर मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर देता है या एल्बम शेयर करना बंद कर देता है, तो |
shareToken |
एक टोकन जिसका इस्तेमाल किसी ऐसे उपयोगकर्ता की ओर से शेयर किए गए एल्बम से join, छोड़ने या जानकारी पाने के लिए किया जाता है जो मालिक नहीं है. अगर मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर देता है या एल्बम शेयर करना बंद कर देता है, तो |
isJoinable |
अगर उपयोगकर्ता एल्बम में शामिल हो सकते हैं, तो True . |
isJoined |
True , अगर उपयोगकर्ता एल्बम से जुड़ा है. यह बात एल्बम के मालिक के लिए हमेशा सही होती है. |
isOwned |
True , अगर उपयोगकर्ता एल्बम का मालिक है. |
एल्बम को शेयर करना बंद करना
अपने ऐप्लिकेशन से पहले शेयर किए गए किसी एल्बम को शेयर करना बंद करने के लिए, एल्बम के albumId
का इस्तेमाल करके
albums.unshare
को कॉल करें.
एल्बम को अब शेयर नहीं किए जाने के अलावा, ये चीज़ें भी होंगी:
- सभी गैर-मालिकों के पास एल्बम का ऐक्सेस नहीं रहेगा. इसमें वे लोग भी शामिल हैं जिनके पास Google Photos ऐप्लिकेशन का इस्तेमाल करके, खास तौर पर शेयर किया गया एल्बम है.
- ऐसे लोगों की ओर से जोड़ा गया सारा कॉन्टेंट, एल्बम से हटा दिया जाएगा जो मालिक नहीं हैं.
- अगर किसी उपयोगकर्ता ने पहले से ही अपनी लाइब्रेरी में एल्बम के कॉन्टेंट को जोड़ा हुआ है, तो वह कॉन्टेंट उनकी लाइब्रेरी में सेव रहेगा.
- एल्बम का शेयर टोकन और शेयर किया जा सकने वाला यूआरएल अमान्य हो जाएगा.
अनुरोध का उदाहरण
आराम
किसी एल्बम का शेयर बंद करने के लिए यहां एक पोस्ट अनुरोध हेडर दिया गया है:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:unshare Content-type: application/json Authorization: Bearer oauth2-token
अनुरोध का मुख्य हिस्सा खाली होना चाहिए.
अनुरोध पूरा होने पर, यह एचटीटीपी सक्सेस स्टेटस कोड के साथ एक खाली रिस्पॉन्स दिखाता है. अनुरोध पूरा न होने पर, यह गड़बड़ी के मैसेज के साथ एचटीटीपी गड़बड़ी का स्टेटस कोड दिखाता है.
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 }
शेयर किए गए एल्बम और शेयर टोकन फ़ेच किए जा रहे हैं
जब आपका ऐप्लिकेशन कोई एल्बम शेयर करता है, तो शेयर किए गए एल्बम की जानकारी और उसे शेयर करने के लिए टोकन भी दिखाया जाता है. बाद में, इन तरीकों से भी यह जानकारी वापस पाई जा सकती है.
अगर आपके ऐप्लिकेशन से अभी कनेक्ट किया गया उपयोगकर्ता, मालिक है या एल्बम में शामिल है, तो:
albums.get
के साथ, सहीalbumId
का इस्तेमाल करें.albums.list
के साथ, अगर एल्बम में मीडिया आइटम मौजूद हैं.sharedAlbums.list
को चुनने पर, शेयर किए गए वे सभी एल्बम दिखते हैं जिनमें उपयोगकर्ता शामिल है या जिसके मालिक हैं. सिर्फ़ वे एल्बम वापस पाने के लिए जिन्हें आपके ऐप्लिकेशन ने बनाया है,excludeNonAppCreatedData
पैरामीटर का इस्तेमाल करें.sharedAlbums.get
के साथ, शेयर टोकन का इस्तेमाल करें.
अगर आपके ऐप्लिकेशन से कनेक्ट किया गया उपयोगकर्ता, एल्बम में शामिल नहीं है, तो sharedAlbums.get
की मदद से, शेयर किए गए एल्बम की जानकारी ली जा सकती है. इसके लिए, मान्य शेयर टोकन का इस्तेमाल किया जा सकता है.
अनुरोध का उदाहरण
आराम
shareToken
के ज़रिए एल्बम पाने का अनुरोध यहां किया गया है:
GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token
अनुरोध स्वीकार होने पर, शेयर किए गए
album
की जानकारी दिखती है.
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 }
किसी शेयर किए गए एल्बम में शामिल होना
आपका ऐप्लिकेशन, एल्बम के शेयर टोकन वाले किसी उपयोगकर्ता की तरफ़ से शेयर किए गए एल्बम में शामिल हो सकता है. ऐसा करने के लिए, नीचे दी गई शर्तें सही होनी चाहिए:
- आपके ऐप्लिकेशन ने एल्बम बनाया और शेयर किया है.
- जिस उपयोगकर्ता को आप एल्बम से जोड़ना चाहते हैं वह उसका मालिक नहीं है. इसका मतलब है कि एल्बम के
shareInfo
मेंisOwned
फ़ील्ड गलत है. - शेयर टोकन मान्य है.
- एल्बम के
shareInfo
मेंisJoinable
फ़ील्ड सही है.
आराम
किसी शेयर किए गए एल्बम में शामिल होने के लिए यहां एक POST अनुरोध हेडर दिया गया है:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:join Content-type: application/json Authorization: Bearer oauth2-token
अनुरोध के मुख्य हिस्से में, shareToken
बताएं.
{ "shareToken": "share-token" }
पोस्ट अनुरोध से, शेयर किया गया वह album
दिखता है जिसमें उपयोगकर्ता ने आपका ऐप्लिकेशन शामिल किया है.
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 }
शेयर किए गए एल्बम को छोड़ना
आपका ऐप्लिकेशन, एल्बम के शेयर टोकन का इस्तेमाल करके किसी उपयोगकर्ता की तरफ़ से, शेयर किया गया एल्बम छोड़ सकता है. ऐसा करने के लिए, नीचे दी गई शर्तें सही होनी चाहिए:
- आपके ऐप्लिकेशन ने एल्बम बना लिया है और उसे शेयर कर दिया है.
- उपयोगकर्ता वर्तमान में एल्बम से जुड़ा हुआ है. इसका मतलब है कि एल्बम के
shareInfo
मेंisJoined
फ़ील्ड सही है. - आपके ऐप्लिकेशन से कनेक्ट किया गया उपयोगकर्ता, एल्बम का मालिक नहीं है. इसका मतलब है कि एल्बम के
shareInfo
मेंisOwned
फ़ील्ड गलत है.
आराम
किसी शेयर किए गए एल्बम को छोड़ने के लिए यहां एक पोस्ट अनुरोध हेडर दिया गया है:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:leave Content-type: application/json Authorization: Bearer oauth2-token
अनुरोध के मुख्य हिस्से में, shareToken
बताएं.
{ "shareToken": "share-token" }
अनुरोध पूरा होने पर, यह एचटीटीपी सक्सेस स्टेटस कोड के साथ एक खाली रिस्पॉन्स दिखाता है. अनुरोध पूरा न होने पर, यह गड़बड़ी के मैसेज के साथ एचटीटीपी गड़बड़ी का स्टेटस कोड दिखाता है.
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 }
शेयर किए गए मीडिया आइटम की प्रॉपर्टी
आपके ऐप्लिकेशन के साथ शेयर किए गए एल्बम से जुड़े मीडिया आइटम में, एक अन्य प्रॉपर्टी contributorInfo
होती है.
यह प्रॉपर्टी सिर्फ़ तब शामिल की जाती है, जब किसी शेयर किए गए एल्बम के कॉन्टेंट को सूची में शामिल किया जाता है.
contributorInfo
प्रॉपर्टी में, उस उपयोगकर्ता का नाम शामिल होता है जिसने एल्बम में मीडिया आइटम जोड़ा है. साथ ही, उनकी प्रोफ़ाइल इमेज में बुनियादी यूआरएल भी शामिल होता है.
यहां एक उदाहरण दिया गया है:
{ "id: "media-item-id", ..., "mediaMetadata": { ... } "contributorInfo": { "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters", "displayName": "name-of-user" } }