मीडिया शेयर करें

आपके ऐप्लिकेशन से बनाए गए एल्बम को उपयोगकर्ताओं के बीच शेयर किया जा सकता है. साथ ही, इन्हें शेयर करने के ऐसे विकल्प मौजूद होते हैं जिनसे उपयोगकर्ता, एल्बम में टिप्पणी कर सकते हैं या एल्बम में अपने मीडिया आइटम का योगदान दे सकते हैं.

Google Photos Library API की मदद से कोई एल्बम शेयर करने के लिए, आपके ऐप्लिकेशन को ये काम करने होंगे:

  1. उपयोगकर्ता की ओर से एल्बम बनाएं.
  2. उस एल्बम को 'शेयर किया गया' पर सेट करें.

पुष्टि करने का ज़रूरी दायरा

कॉन्टेंट शेयर करने के लिए, आपके ऐप्लिकेशन को photoslibrary.sharing अनुमति के दायरे का अनुरोध करना होगा.

एल्बम शेयर करना

कोई एल्बम शेयर करने से पहले, इन बातों का ध्यान रखें:

  • आपका ऐप्लिकेशन सिर्फ़ अपने बनाए गए एल्बम शेयर कर सकता है. Google Photos जैसे दूसरे ऐप्लिकेशन से बनाए गए एल्बम आपका ऐप्लिकेशन शेयर नहीं कर सकते.
  • जब आपका ऐप्लिकेशन Library API की मदद से कोई एल्बम शेयर करता है, तो एक शेयर किया जा सकने वाला यूआरएल जनरेट होता है. इसका इस्तेमाल कोई भी व्यक्ति एल्बम ऐक्सेस करने के लिए कर सकता है.
  • एपीआई की मदद से शेयर किए गए एल्बम के लिए, एल्बम का मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर सकता है या उसे शेयर करना बंद कर सकता है. इससे आपका ऐप्लिकेशन, नए उपयोगकर्ताओं को एल्बम में नहीं जोड़ पाएगा.

एल्बम शेयर करने के लिए:

  1. UX से जुड़े दिशा-निर्देशों का पालन करें और शेयर किया गया एल्बम बनाने के लिए, उपयोगकर्ता से साफ़ तौर पर सहमति लें.
  2. एल्बम बनाएं और इसका albumId रिकॉर्ड करें. अगर आपने पहले ही एल्बम बना लिया है, तो उपयोगकर्ता के एल्बम की सूची में शामिल करके, उसका albumId वापस पाया जा सकता है.
  3. शेयर करने के विकल्प के साथ-साथ, आपके काम के albumId का इस्तेमाल करके, albums.share को कॉल करें.
  4. रिस्पॉन्स में shareToken वैल्यू रिकॉर्ड करें. शेयर टोकन, शेयर किए गए किसी एल्बम के लिए आइडेंटिफ़ायर होता है. इसे अलग-अलग उपयोगकर्ता खातों के साथ इस्तेमाल किया जा सकता है.
  5. अब कोई दूसरा उपयोगकर्ता आपके ऐप्लिकेशन से अपनी पहचान की पुष्टि कर सकता है और शेयर किए गए एल्बम के 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 एल्बम का लिंक. जिन लोगों के पास यह लिंक है वे एल्बम का कॉन्टेंट देख सकते हैं. इसलिए, एल्बम का इस्तेमाल सावधानी से करें.

एल्बम पर लिंक शेयर करने की सुविधा चालू होने पर ही, shareableUrl फ़ील्ड दिखता है. अगर कोई उपयोगकर्ता पहले से ही किसी ऐसे एल्बम में शामिल है जिसे लिंक से शेयर नहीं किया गया है, तो वह एल्बम को ऐक्सेस करने के लिए, productUrl का इस्तेमाल कर सकता है.

अगर मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर देता है या एल्बम शेयर करना बंद कर देता है, तो shareableUrl अमान्य हो जाता है.

shareToken

एक टोकन जिसका इस्तेमाल किसी ऐसे उपयोगकर्ता की ओर से शेयर किए गए एल्बम से join, छोड़ने या जानकारी पाने के लिए किया जाता है जो मालिक नहीं है.

अगर मालिक Google Photos ऐप्लिकेशन में लिंक शेयर करने की सुविधा बंद कर देता है या एल्बम शेयर करना बंद कर देता है, तो shareToken अमान्य हो जाता है.

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