इस गाइड में, Google Drive Activity API में जवाब के मुख्य कॉम्पोनेंट के बारे में बताया गया है. इसमें, उदाहरण के साथ-साथ, इन्हें समझने का तरीका भी बताया गया है.
ऑब्जेक्ट
DriveActivity
—यह Drive Activity API पर क्वेरी से मिलने वाला मुख्य संसाधन है. इस कैटगरी में, एक या उससे ज़्यादा कलाकारों की ऐसी गतिविधियां होती हैं जो एक या एक से ज़्यादा टारगेट पर असर डालती हैं.Timestamp
औरTimeRange
—इनमें एक समय से, इस बात का ब्यौरा होता है: किसी गतिविधि के शुरू होने और उसके खत्म होने का समय.Actor
—आम तौर पर,Actor
असली उपयोगकर्ता होता है. हालांकि, कभी-कभी सिस्टम इवेंटAction
को तब ट्रिगर कर सकता है, जब कोई एडमिन उपयोगकर्ता या खुद के तौर पर काम करता है या जब कोई ऐसा व्यक्ति काम करता है जिसकी पहचान नहीं की जा सकती.Actor
मैसेज में, इनमें से हर एक मामले को एनकैप्सुलेट करता है.Target
—Target
, किसी गतिविधि का ऑब्जेक्ट होता है. जैसे, फ़ाइल, फ़ोल्डर, शेयर की गई ड्राइव या फ़ाइल पर की गई टिप्पणी. ध्यान दें कि कार्रवाई के कई टाइप, एक से ज़्यादा तरह के टारगेट के साथ काम करते हैं. उदाहरण के लिए, हालांकिEdit
आम तौर पर Drive फ़ाइलों पर लागू होता है, लेकिनRename
औरCreate
जैसी दूसरी कार्रवाइयां भी Drive फ़ोल्डर और शेयर की गई ड्राइव पर लागू हो सकती हैं. जो टारगेट Drive आइटम नहीं हैं, वे अब भी इन्हें देख सकते हैं, जैसे कि Drive के रूट फ़ोल्डर या किसी फ़ाइल की टिप्पणी वाले पैरंट दस्तावेज़.Action
—हरDriveActivity
संसाधन से एक या एक से ज़्यादा मिलती-जुलती कार्रवाइयां होती हैं. किसी इवेंट की तरह, एकAction
में पूरी जानकारी होती है. इसमें न सिर्फ़ कार्रवाई की पूरी जानकारी होती है, बल्किActor
,Target
,Timestamp
याTimeRange
भी होते हैं. रिडंडंसी से बचने के लिए,Action
अपनेTarget
,Actor
या टाइम फ़ील्ड को अपने-आप नहीं भरता, जब वे सभीDriveActivity
की वैल्यू के बराबर हों.ActionDetail
—यहAction
के बारे में खास तरह की और पूरी जानकारी है. उदाहरण के लिए,Move
कार्रवाई की जानकारी में सोर्स और डेस्टिनेशन की जगह की जानकारी होती है. साथ ही,PermissionChange
से पता चलता है कि अब दस्तावेज़ को कौन ऐक्सेस कर सकता है और उसके खास अधिकारों को कौन ऐक्सेस कर सकता है.
रिस्पॉन्स के उदाहरण
किसी उपयोगकर्ता ने Drive में मौजूद एक फ़ाइल में बदलाव किया:
एक सामान्य DriveActivity
संसाधन में सिर्फ़ एक कार्रवाई शामिल हो सकती है, जैसे कि उपयोगकर्ता, एक फ़ाइल में बदलाव कर सकता है.
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[ { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
"timestamp":{ "seconds":"1536794657", "nanos":791000000 },
"actions":[ { "detail":{ "edit":{} } } ]
}]
इस आउटपुट में ये वैल्यू शामिल होती हैं:
- ACCOUNT_ID: उपयोगकर्ता का आईडी. ज़्यादा जानकारी पाने के लिए, इसका इस्तेमाल People API के साथ किया जा सकता है.
- ITEM_ID: Drive में मौजूद आइटम का आईडी.
- TITLE: Drive में मौजूद आइटम का टाइटल.
ध्यान दें कि इस जवाब में मौजूद Action
में Actor
, Target
या TimeStamp
शामिल नहीं हैं, क्योंकि वे सभी DriveActivity
की तरह ही हैं.
दो उपयोगकर्ताओं ने एक ही फ़ाइल में एक ही समय पर बदलाव किए हैं:
डेटा इकट्ठा करने की सुविधा चालू होने पर, मिलती-जुलती कार्रवाइयों को एक DriveActivity
में ग्रुप किया जाता है. इस उदाहरण में, दो मिलती-जुलती कार्रवाइयों को ग्रुप किया गया है: दो अलग-अलग उपयोगकर्ताओं का
एक Edit
ऐक्शन टाइप.
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
],
"time_range":{
"start_time":{ "seconds":"1541089823", "nanos":712000000 },
"end_time":{ "seconds":"1541089830", "nanos":830000000 }
},
"actions":[
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
"timestamp":{ "seconds":"1541089830", "nanos":830000000 }
},
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } },
"timestamp":{ "seconds":"1541089823", "nanos":712000000 }
}
]
}]
इस आउटपुट में ये वैल्यू शामिल होती हैं:
- ACCOUNT_ID_1: पहले उपयोगकर्ता का आईडी. ज़्यादा जानकारी पाने के लिए, इसका इस्तेमाल People API के साथ किया जा सकता है.
- ACCOUNT_ID_2: दूसरे उपयोगकर्ता का आईडी.
- ITEM_ID: Drive में मौजूद आइटम का आईडी.
- TITLE: Drive में मौजूद आइटम का टाइटल.
ध्यान दें कि इस जवाब में की गई कार्रवाइयों में Target
शामिल नहीं है, क्योंकि यह
सभी DriveActivity
की तरह ही है.
इस उदाहरण में यह भी दिखाया गया है कि ऐप्लिकेशन अलग-अलग कार्रवाइयों को देखे बिना, DriveActivity
में मौजूद खास जानकारी का इस्तेमाल कैसे कर सकते हैं. रिस्पॉन्स से पता चलता है कि दो उपयोगकर्ताओं ने दी गई फ़ाइल में लंबे समय तक बदलाव किया है.
किसी उपयोगकर्ता ने दो फ़ाइलों को नई डायरेक्ट्री में ले जाया है:
इस उदाहरण में, इकट्ठा करने की रणनीति में दो मिलती-जुलती Move
कार्रवाइयों को ग्रुप किया गया, क्योंकि फ़ाइलों को एक ही समय में एक ही सोर्स से एक ही डेस्टिनेशन पर ले जाया गया था.
"activities":[{
"primary_action_detail":{
"move":{
"added_parents":[ { ... } ]
"removed_parents":[ { ... } ]
}
},
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
],
"timestamp":{ "seconds":"1541090960", "nanos":985000000 },
"actions":[
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
},
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
}
]
}]
इस आउटपुट में ये वैल्यू शामिल होती हैं:
- ACCOUNT_ID: उपयोगकर्ता का आईडी. ज़्यादा जानकारी पाने के लिए, इसका इस्तेमाल People API के साथ किया जा सकता है.
- ITEM_ID_1: Drive के पहले आइटम का आईडी.
- ITEM_ID_2: Drive के दूसरे आइटम का आईडी.
- TITLE_1: Drive में मौजूद पहले आइटम का टाइटल.
- TITLE_2: Drive के दूसरे आइटम का टाइटल.
ध्यान दें कि इस जवाब में की गई कार्रवाइयों में Actor
या TimeStamp
शामिल नहीं हैं, क्योंकि वे कुल DriveActivity
की तरह ही हैं.