Drive Activity API का डेटा मॉडल

इस गाइड में, Google Drive Activity API में जवाब के मुख्य कॉम्पोनेंट के बारे में बताया गया है. इसमें, उदाहरण के साथ-साथ, इन्हें समझने का तरीका भी बताया गया है.

ऑब्जेक्ट

  • DriveActivity—यह Drive Activity API पर क्वेरी से मिलने वाला मुख्य संसाधन है. इस कैटगरी में, एक या उससे ज़्यादा कलाकारों की ऐसी गतिविधियां होती हैं जो एक या एक से ज़्यादा टारगेट पर असर डालती हैं.

  • Timestamp और TimeRange—इनमें एक समय से, इस बात का ब्यौरा होता है: किसी गतिविधि के शुरू होने और उसके खत्म होने का समय.

  • Actor—आम तौर पर, Actor असली उपयोगकर्ता होता है. हालांकि, कभी-कभी सिस्टम इवेंट Action को तब ट्रिगर कर सकता है, जब कोई एडमिन उपयोगकर्ता या खुद के तौर पर काम करता है या जब कोई ऐसा व्यक्ति काम करता है जिसकी पहचान नहीं की जा सकती. Actor मैसेज में, इनमें से हर एक मामले को एनकैप्सुलेट करता है.

  • TargetTarget, किसी गतिविधि का ऑब्जेक्ट होता है. जैसे, फ़ाइल, फ़ोल्डर, शेयर की गई ड्राइव या फ़ाइल पर की गई टिप्पणी. ध्यान दें कि कार्रवाई के कई टाइप, एक से ज़्यादा तरह के टारगेट के साथ काम करते हैं. उदाहरण के लिए, हालांकि 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 की तरह ही हैं.