Drive ऐक्टिविटी एपीआई v1 से माइग्रेट करना

इस गाइड में, Google Drive ऐक्टिविटी एपीआई के v1 और v2 वर्शन के बीच अंतर बताया गया है. साथ ही, यह भी बताया गया है कि अपने v1 ऐप्लिकेशन को v2 API के साथ काम करने के लिए कैसे बदला जा सकता है.

अनुमति देना

v1 एपीआई ने इस स्कोप का इस्तेमाल किया है:

  • https://www.googleapis.com/auth/activity

v2 API को इनमें से किसी एक स्कोप की ज़रूरत होती है:

  • https://www.googleapis.com/auth/drive.activity
  • https://www.googleapis.com/auth/drive.activity.readonly

संसाधन के नाम

v1 API में, Google Drive आइटम और उपयोगकर्ता जैसे ऑब्जेक्ट के आइडेंटिफ़ायर ओपेक स्ट्रिंग थे. v2 API में, आम तौर पर इन ऑब्जेक्ट के बारे में संसाधन नामों का इस्तेमाल करके बताया जाता है. ज़्यादा जानकारी के लिए, Cloud API की डिज़ाइन गाइड देखें.

इन आइडेंटिफ़ायर को आम तौर पर बदला जा सकता है. उदाहरण के लिए, v2 एपीआई में मौजूद Drive आइटम के रेफ़रंस के लिए, संसाधन नाम items/ITEM_ID_V1 इस्तेमाल किया जाता है.

अनुरोध

v2 के लिए अनुरोध का फ़ॉर्मैट, v1 के अनुरोध के फ़ॉर्मैट जैसा ही है. खास तौर पर, अब भी किसी Drive फ़ाइल या Drive के एंसेस्टर के लिए, गतिविधि का अनुरोध किया जा सकता है. हालांकि, ध्यान रखें कि आपको उन अनुरोध पैरामीटर को संसाधन नाम के तौर पर फ़ॉर्मैट करना होगा. इसके लिए, उनके पहले items/ जोड़ना होगा.

"ग्रुपिंग" को अब कंसॉलिडेशन कहा जाता है. साथ ही, source और userId अनुरोध पैरामीटर को हटा दिया गया है.

साथ ही, नए फ़िल्टर विकल्प की मदद से, रिस्पॉन्स में दिखाए गए गतिविधि के डेटा को सीमित किया जा सकता है.

कार्रवाइयाँ

v1 API में, गतिविधि का प्रकार और उस गतिविधि से जुड़ा डेटा, अलग-अलग फ़ील्ड में थे. उदाहरण के लिए, अगर primaryEventType फ़ील्ड में move वैल्यू है, तो ऐप्लिकेशन यह मान लेंगे कि टॉप-लेवल के किसी move फ़ील्ड में, जोड़े और हटाए गए पैरंट लेवल का डेटा अपने-आप भर गया है.

v2 API में, ये फ़ील्ड अब अलग-अलग नहीं हैं. ActionDetail मैसेज में सिर्फ़ एक फ़ील्ड सेट होता है. यह कार्रवाई के प्रकार को दिखाता है और उसमें उस कार्रवाई से जुड़ी जानकारी शामिल होती है. उदाहरण के लिए, मूव दिखाने वाला ActionDetail सिर्फ़ move फ़ील्ड सेट करता है. उस फ़ील्ड में, जोड़े और हटाए गए पैरंट की सूची होती है.

v1 एपीआई primaryEventType फ़ील्ड, आम तौर पर v2 primaryActionDetail से मिलता-जुलता है.

Actors

v1 एपीआई में, अगर उपयोगकर्ता जाना-पहचाना उपयोगकर्ता था, तो नतीजे में दी गई गतिविधि में User होता था. साथ ही, इसमें कुछ खास मामलों के लिए, fromUserDeletion जैसा टॉप लेवल फ़ील्ड भी शामिल होता था.

v2 API में, Actor टाइप का एक बेहतर सेट उपलब्ध होता है. साथ ही, user.knownUser की जानकारी तब अपने-आप भर जाती है, जब कलाकार कोई जाना-पहचाना उपयोगकर्ता हो. अगर आपके ऐप्लिकेशन को उपयोगकर्ताओं के बारे में ज़्यादा जानकारी चाहिए, तो वह People API से इसके लिए क्वेरी कर सकता है. इसके लिए, KnownUser फ़ील्ड personName को people.get तरीके से पास करना होगा.

टारगेट

v1 एपीआई में, टारगेट हमेशा Drive में मौजूद आइटम होते थे. v2 API में, टारगेट, Drive में दूसरी तरह के ऑब्जेक्ट हो सकते हैं. उदाहरण के लिए, Drive में किए जाने वाले बदलावों का टारगेट टाइप Drive होता है. शेयर की गई ड्राइव का रूट फ़ोल्डर अब भी (root फ़ील्ड में DriveItem के तौर पर) दिखाया जा रहा है, लेकिन यह गतिविधि का तुरंत टारगेट नहीं है. इसी तरह का सिद्धांत FileComment संसाधन पर लागू होता है. इसका parent फ़ील्ड, Drive में मौजूद उस आइटम के बारे में बताता है जिसमें टारगेट टिप्पणी थ्रेड होता है.

इकट्ठा की गई गतिविधि

v1 एपीआई में, इकट्ठा करने ("ग्रुपिंग") की रणनीति सेट करने पर, जवाब देने की स्टाइल बदल गई. खास तौर पर, डेटा इकट्ठा करने की सुविधा चालू होने पर, हर गतिविधि में singleEvents और combinedEvent शामिल थे. इन गतिविधियों में, सभी गतिविधियों की खास जानकारी होती थी. इकट्ठा करने की सुविधा बंद होने पर, combinedEvent फ़ील्ड में हर गतिविधि के लिए, बिना किसी जानकारी वाला मूल इवेंट शामिल होता है. इनमें से कोई भी इवेंट एक से ज़्यादा कार्रवाइयां दिखा सकता है, जैसे कि शेयर के साथ बनाना.

v2 एपीआई में, इंटिग्रेशन की रणनीति के हिसाब से जवाब देने की स्टाइल नहीं बदलती, क्योंकि नतीजे में DriveActivity हमेशा ऐक्टर, टारगेट, और कार्रवाइयों का पूरा सेट होता है.