इस गाइड में बताया गया है कि 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"
}