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

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

अनुमति देना

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 API में Drive के आइटम का रेफ़रंस, रिसॉर्स के नाम items/ITEM_ID_V1 का इस्तेमाल करके दिया जाता है.

अनुरोध

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

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

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

कार्रवाइयां

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

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

v1 API primaryEventType फ़ील्ड, v2 primaryActionDetail से मिलता-जुलता है.

Actors

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

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

टारगेट

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

सभी खातों की गतिविधि

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

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