इस गाइड में, activity.query
तरीके का इस्तेमाल करके, Google Drive Activity API में अनुरोध करने का तरीका बताया गया है.
क्वेरी कुंजी
गतिविधि का अनुरोध करने के दो तरीके हैं: Google Drive आइटम के हिसाब से या फ़ोल्डर के क्रम में मौजूद सभी आइटम के लिए.
itemName
: इस कुंजी का फ़ॉर्मैट "items/ITEM_ID" है. आम तौर पर, यह Drive में मौजूद कोई फ़ाइल होती है. अगर आपने इस कुंजी के लिए कोई फ़ोल्डर तय किया है, तो यह फ़ोल्डर के लिए गतिविधि दिखाता है. जैसे, फ़ोल्डर कब बनाया गया या उसका नाम कब बदला गया.ancestorName
: इस कुंजी का फ़ॉर्मैट "items/ITEM_ID" है. साथ ही, रिस्पॉन्स में इस फ़ोल्डर के नीचे मौजूद सबट्री में मौजूद सभी आइटम की गतिविधि शामिल होती है.
अगर कोई कुंजी सेट नहीं की जाती है, तो यह डिफ़ॉल्ट रूप से "items/root" के ancestorName
का इस्तेमाल करती है और आपके Drive में मौजूद सभी आइटम की गतिविधि दिखाती है.
पेज पर नंबर डालना
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 से मिलीसेकंड या आरएफ़सी 3339 फ़ॉर्मैट का इस्तेमाल करें. जैसे:
time > 1452409200000 AND time <= 1492812924310
time >= "2016-01-10T01:02:03-05:00"
प्रकार के अनुसार फ़िल्टर करें
कार्रवाई के टाइप के हिसाब से पाबंदी लगाने के लिए, "has" ऑपरेटर (:
) के साथ फ़ील्ड का नाम detail.action_detail_case
लागू करें. एक वैल्यू या ब्रैकेट में डाली गई, अनुमति वाली कार्रवाई के टाइप की सूची का इस्तेमाल करें. इन वैल्यू को स्पेस से अलग करें. कार्रवाई के टाइप की सूची देखने के लिए, 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"
}