Drive ऐक्टिविटी एपीआई डेटा मॉडल

यह गाइड, Google Drive गतिविधि एपीआई में रिस्पॉन्स के मुख्य कॉम्पोनेंट के बारे में बताती है. इसमें उदाहरण दिए गए हैं और उन्हें समझने का तरीका बताया गया है.

ऑब्जेक्ट

  • 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 सभी कार्रवाइयों से एक जैसे होते हैं.