यह गाइड, Google Drive गतिविधि एपीआई में रिस्पॉन्स के मुख्य कॉम्पोनेंट के बारे में बताती है. इसमें उदाहरण दिए गए हैं और उन्हें समझने का तरीका बताया गया है.
ऑब्जेक्ट
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
सभी कार्रवाइयों से एक जैसे होते हैं.