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

इस गाइड में, 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"
}