इस गाइड में, Google Drive Activity API में रिस्पॉन्स के मुख्य कॉम्पोनेंट के बारे में बताया गया है. साथ ही, उदाहरण दिए गए हैं और उन्हें समझने का तरीका भी बताया गया है.
ऑब्जेक्ट
DriveActivity
—यह Drive Activity API को भेजी गई क्वेरी से मिलने वाला मुख्य संसाधन है. इसमें एक या एक से ज़्यादा टारगेट पर असर डालने वाली एक या एक से ज़्यादा कार्रवाइयां करने वाले एक या एक से ज़्यादा ऐक्टर के बारे में बताया जाता है.Timestamp
औरTimeRange
—इनसे, गतिविधि के होने के समय के किसी एक पॉइंट या किसी समयावधि के दौरान गतिविधि के शुरू और खत्म होने के समय के बारे में पता चलता है.Actor
—आम तौर पर,Actor
एक असली उपयोगकर्ता होता है. हालांकि, कभी-कभी सिस्टम इवेंट,Action
को ट्रिगर कर सकता है. ऐसा तब होता है, जब कोई एडमिन उपयोगकर्ता या खुद के तौर पर काम कर रहा हो या जब कोई ऐसा व्यक्ति काम कर रहा हो जिसकी पहचान नहीं की जा सकती.Actor
मैसेज में इन सभी मामलों के बारे में बताया गया है.Target
—Target
किसी गतिविधि का ऑब्जेक्ट होता है. जैसे, फ़ाइल, फ़ोल्डर, शेयर की गई ड्राइव या फ़ाइल पर की गई टिप्पणी. ध्यान दें कि कई तरह की कार्रवाइयां, एक से ज़्यादा तरह के टारगेट के साथ काम करती हैं. उदाहरण के लिए,Edit
आम तौर पर Drive की फ़ाइलों पर लागू होता है. हालांकि,Rename
औरCreate
जैसी अन्य कार्रवाइयां, Drive के फ़ोल्डर और शेयर की गई ड्राइव पर भी लागू हो सकती हैं. 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
जैसी ही हैं.