Google Drive गतिविधि एपीआई में अनुरोध करना

इस गाइड में बताया गया है कि activity.query तरीके का इस्तेमाल करके, Google Drive Activity API में अनुरोध कैसे करें.

क्वेरी कुंजी

गतिविधि का अनुरोध करने के दो तरीके हैं: Google Drive में मौजूद आइटम से या फ़ोल्डर की हैरारकी के अंदर मौजूद हर चीज़ के लिए.

  • itemName: इस कुंजी का फ़ॉर्मैट "items/ITEM_ID" है. आम तौर पर, यह Drive में मौजूद कोई फ़ाइल होती है. अगर इस बटन के लिए कोई फ़ोल्डर चुना जाता है, तो यह उस फ़ोल्डर के लिए गतिविधि दिखाता है. जैसे, इसे कब बनाया गया था या इसका नाम कब बदला गया था.

  • ancestorName: इस कुंजी का फ़ॉर्मैट "items/ITEM_ID" है. जवाब में इस फ़ोल्डर के नीचे मौजूद सबट्री के सभी आइटम से जुड़ी गतिविधि शामिल होती है.

जब कोई कुंजी सेट नहीं होती है, तो वह डिफ़ॉल्ट रूप से "items/root" के ancestorName का इस्तेमाल करती है और आपकी डिस्क में मौजूद सभी आइटम की गतिविधि दिखाती है.

खोज नतीजों को पेजों में बांटना

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

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

इकट्ठा करना

Action ऑब्जेक्ट को अक्सर ग्रुप किया जाता है और एक DriveActivity संसाधन के अंदर दिखाया जाता है. Action के कुछ ग्रुप अपने-आप बन जाते हैं, जैसे कि किसी आइटम को शेयर किए गए फ़ोल्डर में ले जाने से अनुमति में बदलाव ट्रिगर हो जाता है.

अनुरोध में, ConsolidationStrategy (कभी-कभी इसे एग्रीगेशन या बैचिंग भी कहा जा सकता है). इससे, मिलते-जुलते Action ऑब्जेक्ट के अन्य ग्रुप चालू हो जाते हैं. जैसे, एक आइटम में कई कलाकार बदलाव कर सकते हैं या एक Actor कई फ़ाइलों को नए Drive फ़ोल्डर में ले जा सकते हैं.

किसी Action के पास एक Actor और एक Target होता है. हालांकि, ग्रुप बनाने के बाद DriveActivity में कई कलाकार और एक से ज़्यादा टारगेट हो सकते हैं. हालांकि, ग्रुप बनाने के बाद भी, हमेशा एक "प्राइमरी" कार्रवाई होती है जो DriveActivity संसाधन में सभी कार्रवाइयों में से या तो प्रतिनिधि के तौर पर होती है या सबसे अहम होती है. यह कार्रवाई, डेटा को ग्रुप में बांटने की अनुरोध की गई रणनीति के आधार पर तय होती है.

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

फ़िल्टर

activity.query अनुरोध में filter स्ट्रिंग बनाकर, उन कार्रवाइयों पर पाबंदी लगाई जा सकती है जो DriveActivity संसाधन में दिखाई जा सकती हैं. दो तरह के फ़ील्ड इस्तेमाल किए जा सकते हैं: time और detail.action_detail_case.

समय के अनुसार फ़िल्टर करना

समय की सीमा के मुताबिक कार्रवाइयों पर पाबंदी लगाने के लिए, तारीख की वैल्यू पर संख्यात्मक ऑपरेटर के साथ फ़ील्ड का नाम time डालें. साथ ही, फ़ील्ड को वैकल्पिक "AND" से जोड़ें. 1 जनवरी, 1970 से मिलीसेकंड या RFC 3339 फ़ॉर्मैट का इस्तेमाल करें, जैसे:

  • time > 1452409200000 AND time <= 1492812924310
  • time >= "2016-01-10T01:02:03-05:00"

प्रकार के अनुसार फ़िल्टर करें

कार्रवाई के टाइप के हिसाब से पाबंदी लगाने के लिए, फ़ील्ड नाम detail.action_detail_case को "has" ऑपरेटर (:) के साथ लागू करें. एक वैल्यू का इस्तेमाल करें या एक स्पेस से अलग करके, ब्रैकेट में मंज़ूर की गई कार्रवाई के टाइप की सूची का इस्तेमाल करें. कार्रवाई के प्रकारों की सूची ढूंढने के लिए, ActionDetail ऑब्जेक्ट देखें.

जवाब से किसी कार्रवाई प्रकार को निकालने के लिए, फ़िल्टर स्ट्रिंग की शुरुआत में एक हाइफ़न (-) जोड़ें.

यहां कार्रवाई के कुछ उदाहरण दिए गए हैं:

  • detail.action_detail_case:RENAME
  • detail.action_detail_case:(CREATE RESTORE)
  • -detail.action_detail_case:MOVE

कॉम्बिनेशन

फ़िल्टर करने की इन शर्तों को एक ही filter स्ट्रिंग में जोड़ा जा सकता है, जैसे:

  • detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000

अनुरोध के उदाहरण

Drive में मौजूद किसी आइटम के लिए, हाल ही की 10 गतिविधियों का अनुरोध करें:

{
  "itemName": "items/ITEM_ID",
  "pageSize": 10
}

Drive में मौजूद हर आइटम के लिए, पुराने फ़ोल्डर के नीचे इकट्ठा की गई गतिविधियों का अनुरोध करें:

{
  "ancestorName": "items/ITEM_ID",
  "consolidationStrategy": {
    "legacy": {}
  }
}

Drive में मौजूद किसी आइटम पर, सभी MOVE और RENAME कार्रवाइयों के लिए अनुरोध करें:

{
  "itemName": "items/ITEM_ID",
  "filter": "detail.action_detail_case:(MOVE RENAME)"
}

1 जनवरी, 2018 ईएसटी के बाद की सभी गतिविधियों का अनुरोध करें:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-01-01T00:00:00-05:00\""
}

जून 2017 यूटीसी के दौरान, EDIT कार्रवाइयों को छोड़कर सभी गतिविधियों का अनुरोध करें:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}