ऐप्लिकेशन से बनाए गए मीडिया आइटम और एल्बम की सूची बनाना

अनुमति के लिए ज़रूरी स्कोप

ऐप्लिकेशन से बनाए गए कॉन्टेंट की लिस्टिंग के लिए, photoslibrary.readonly.appcreateddata स्कोप की ज़रूरत होती है. स्कोप के बारे में ज़्यादा जानकारी के लिए, अनुमति के स्कोप देखें.

खास जानकारी

Library API की मदद से, उन मीडिया आइटम की सूची बनाई जा सकती है और उन्हें ऐक्सेस किया जा सकता है जिन्हें आपके ऐप्लिकेशन ने बनाया है.

मीडिया आइटम की लिस्टिंग की कुछ मुख्य सुविधाएं ये हैं:

  • ऐप्लिकेशन से बनाए गए किसी एल्बम या पूरी लाइब्रेरी के मीडिया आइटम की सूची देखना
  • फ़िल्टर (तारीख, कॉन्टेंट कैटगरी, मीडिया टाइप) लागू करके, खोज के नतीजों को बेहतर बनाएं

  • डायरेक्ट लिंक और मेटाडेटा जैसी ज़रूरी जानकारी वाले mediaItem ऑब्जेक्ट वापस पाएं.

लाइब्रेरी और एल्बम के कॉन्टेंट की सूची बनाने पर, मीडिया आइटम की सूची दिखती है. एल्बम में शामिल रिच फ़ीड शामिल नहीं किए जाते. मीडिया आइटम से किसी फ़ोटो, वीडियो या अन्य मीडिया के बारे में जानकारी मिलती है. mediaItem में, आइटम का सीधा लिंक, Google Photos में मौजूद आइटम का लिंक, और दूसरे काम का मेटाडेटा शामिल होता है. ज़्यादा जानकारी के लिए, मीडिया आइटम ऐक्सेस करना और mediaItems देखें.

ऐप्लिकेशन में बनाए गए एल्बम की सूची बनाना

albums.list का इस्तेमाल करके, उन एल्बम की सूची बनाई जा सकती है जिन्हें आपके ऐप्लिकेशन ने बनाया है.

REST

अनुरोध का एक सैंपल यहां दिया गया है:

GET https://photoslibrary.googleapis.com/v1/albums

अनुरोध करने पर यह नतीजा मिलता है:

{
  "albums": [
    {
      "id": "album-id",
      "title": "album-title",
      "productUrl": "album-product-url",
      "coverPhotoBaseUrl": "album-cover-base-url_do-not-use-directly",
      "coverPhotoMediaItemId": "album-cover-media-item-id",
      "isWriteable": "whether-you-can-write-to-this-album",
      "mediaItemsCount": "number-of-media-items-in-album"
    },
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

लौटाए गए हर एल्बम में एक आईडी होता है. इसका इस्तेमाल एल्बम के कॉन्टेंट को वापस पाने के लिए किया जा सकता है, जैसा कि एल्बम के कॉन्टेंट की सूची बनाना में दिखाया गया है. इसमें टाइटल और मीडिया आइटम की संख्या भी शामिल होती है.

productUrl, Google Photos में उस एल्बम पर ले जाता है जिसे उपयोगकर्ता खोल सकता है.

coverPhotoMediaItemId में मीडिया आइटम का आईडी होता है, जो इस एल्बम की कवर फ़ोटो दिखाता है. इस कवर इमेज को ऐक्सेस करने के लिए, coverPhotoBaseUrl का इस्तेमाल करें. अन्य पैरामीटर तय किए बिना, सीधे coverPhotoBaseUrl का इस्तेमाल नहीं किया जाना चाहिए.

रिस्पॉन्स में nextPageToken भी शामिल होता है. ज़्यादा जानकारी के लिए, पेजेशन देखें.

खाली एल्बम के लिए रिस्पॉन्स अलग-अलग होते हैं. इसमें mediaItemsCount और coverPhotoMediaItemId डिफ़ॉल्ट रूप से 0 पर सेट होते हैं और उन्हें REST रिस्पॉन्स में से हटा दिया जाता है. यह भी ध्यान रखें कि coverPhotoBaseUrl, डिफ़ॉल्ट प्लेसहोल्डर इमेज पर ले जाता है.

ऐप्लिकेशन से बनाए गए लाइब्रेरी कॉन्टेंट की सूची

आपके पास उपयोगकर्ता की Google Photos लाइब्रेरी में मौजूद उन सभी मीडिया आइटम की सूची बनाने का विकल्प है जिन्हें आपके ऐप्लिकेशन ने बनाया है. इसमें संग्रहित और मिटाए गए आइटम शामिल नहीं हैं. फ़िल्टर लागू करके, मीडिया आइटम को उनके कॉन्टेंट, तारीख, और अन्य प्रॉपर्टी के हिसाब से लिस्ट किया जा सकता है.

मीडिया आइटम की सूची देखने के लिए, mediaItems.list को कॉल करें.

REST

अनुरोध का सैंपल यहां दिया गया है:

GET https://photoslibrary.googleapis.com/v1/mediaItems
Content-type: application/json
Authorization: Bearer oauth2-token
{
  "pageSize": "100",
}

जीईटी अनुरोध से यह रिस्पॉन्स मिलता है:

{
  "mediaItems": [
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

जवाब में मीडिया आइटम की सूची होती है, जो सबसे हाल के आइटम से लेकर सबसे पुराने आइटम तक के क्रम में होती है. ज़्यादा जानकारी के लिए, mediaItems देखें. इसमें एक nextPageToken भी होता है, जिसके बारे में पेज नंबर में ज़्यादा जानकारी दी गई है.

एल्बम के कॉन्टेंट की सूची

किसी एल्बम में मौजूद सभी मीडिया आइटम की सूची देखने के लिए, खोज के अनुरोध में albumId फ़ील्ड जोड़ें. albumId के बारे में ज़्यादा जानकारी के लिए, एल्बम की सूची देखें. अगर albumId अमान्य है, तो Bad Request गड़बड़ी का मैसेज दिखता है. अगर आईडी मान्य है, लेकिन पुष्टि किए गए उपयोगकर्ता के लिए एल्बम मौजूद नहीं है, तो Not Found गड़बड़ी दिखती है. गड़बड़ी को मैनेज करने के बारे में ज़्यादा जानकारी के लिए, परफ़ॉर्मेंस से जुड़ी सलाह और सबसे सही तरीके देखें.

REST

अनुरोध का सैंपल यहां दिया गया है:

POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
  "pageSize": "100",
  "albumId": "album-id"
}

पीओएसटी अनुरोध से यह रिस्पॉन्स मिलता है:

{
  "mediaItems": [
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

इस रिस्पॉन्स में एक nextPageToken और मीडिया आइटम की सूची शामिल होती है. लाइब्रेरी के कॉन्टेंट को सूची में शामिल करने के उलट, मीडिया आइटम को एल्बम में उनके क्रम के हिसाब से लौटाया जाता है. ज़्यादा जानकारी के लिए, mediaItems और पेजेशन देखें. उपयोगकर्ता, Google Photos के इंटरफ़ेस में जाकर ऑर्डर में बदलाव कर सकता है.

अगर albumId सेट है, तो एल्बम के कॉन्टेंट की लिस्टिंग करते समय कोई फ़िल्टर लागू नहीं किया जा सकता. ऐसा करने पर, Bad Request गड़बड़ी का मैसेज दिखता है.

REST के लिए पेज पर नंबर डालना

परफ़ॉर्मेंस को बेहतर बनाने के लिए, बहुत ज़्यादा नतीजे देने वाले तरीकों (जैसे कि सूची बनाने के तरीके) से रिस्पॉन्स को पेजों में बांटा जा सकता है. हर पेज पर नतीजों की ज़्यादा से ज़्यादा संख्या, pageSize पैरामीटर से तय होती है.

mediaItems.search और mediaItems.list को किए गए कॉल के लिए, पेज का डिफ़ॉल्ट साइज़ 25 आइटम होता है. हमारा सुझाव है कि आप पेज का साइज़ 1000 से 1500 के बीच रखें, क्योंकि इससे रिस्पॉन्स के साइज़ और फ़िल दर के बीच संतुलन बना रहता है. मीडिया आइटम की खोज और सूची के अनुरोधों के लिए, पेज का ज़्यादा से ज़्यादा साइज़ 100 आइटम हो सकता है.

एल्बम की सूची बनाते समय, पेज का डिफ़ॉल्ट और सुझाया गया साइज़ 20 एल्बम होता है. हालांकि, ज़्यादा से ज़्यादा 50 एल्बम जोड़े जा सकते हैं.

जब उपलब्ध नतीजों की संख्या, पेज के साइज़ से ज़्यादा होती है, तो रिस्पॉन्स में nextPageToken शामिल होता है. इससे आपके ऐप्लिकेशन को पता चलता है कि सर्वर से ज़्यादा नतीजे फ़ेच किए जाने हैं.

उदाहरण

आपको पैरामीटर pageToken में, बाद के अनुरोधों में nextPageToken जोड़ना होगा, जैसा कि इस उदाहरण में दिखाया गया है. कार्रवाई के लिए ज़रूरी दूसरे पैरामीटर के साथ pageToken को एक साथ तय करें, चाहे अनुरोध के मुख्य हिस्से में हो या क्वेरी पैरामीटर के तौर पर.

अनुरोध #1

{
  "pageSize": "5",
  "filters": { … }
}

जवाब #1

{
  "mediaItem": [ … ],
  "nextPageToken": "next-page-token"
}

अनुरोध #2

{
  "pageSize": "5",
  "filters": { … },
  "pageToken": "page-token"
}

जवाब #2

{
  "mediaItem": [ … ],
  "nextPageToken": "next-page-token"
}

इस पैटर्न को तब तक जारी रखें, जब तक nextPageToken ऑब्जेक्ट न बचे.

nextPageToken सिर्फ़ उसी अनुरोध के लिए मान्य है. अगर किसी पैरामीटर में बदलाव किया जाता है, तो उसी अनुरोध में पहले से इस्तेमाल किए गए nextPageToken का इस्तेमाल नहीं किया जाना चाहिए.