ড্রাইভ কার্যকলাপ API ডেটা মডেল

এই গাইডটি Google ড্রাইভ অ্যাক্টিভিটি API-তে একটি প্রতিক্রিয়ার প্রধান উপাদানগুলি ব্যাখ্যা করে, উদাহরণগুলি দেখায় এবং কীভাবে সেগুলিকে ব্যাখ্যা করতে হয়৷

বস্তু

  • DriveActivity : ড্রাইভ অ্যাক্টিভিটি এপিআই-এ প্রশ্নগুলির দ্বারা ফেরত দেওয়া প্রাথমিক সংস্থান। এটি বর্ণনা করে যে এক বা একাধিক অভিনেতা এক বা একাধিক ক্রিয়া সম্পাদন করছেন যা এক বা একাধিক লক্ষ্যকে প্রভাবিত করে।

  • Timestamp এবং TimeRange : এগুলি যথাক্রমে বর্ণনা করে, হয় যখন ক্রিয়াকলাপটি ঘটেছিল তখন একটি একক বিন্দু, অথবা যখন কার্যকলাপটি একটি নির্দিষ্ট সময়ের মধ্যে ঘটেছিল তখন শুরু এবং শেষ হয়৷

  • Actor : সাধারণত, একজন Actor একজন শেষ ব্যবহারকারী। যাইহোক, কখনও কখনও, একটি সিস্টেম ইভেন্ট একটি Action ট্রিগার করতে পারে যখন একজন অ্যাডমিনিস্ট্রেটর একজন ব্যবহারকারী হিসাবে বা নিজের মতো কাজ করে, বা যখন কোনও অজ্ঞাত ব্যক্তি দ্বারা সঞ্চালিত হয়। Actor বার্তা এই প্রতিটি ক্ষেত্রে encapsulates.

  • Target : একটি Target হল একটি ক্রিয়াকলাপের বস্তু, যেমন একটি ফাইল, একটি ফোল্ডার, একটি শেয়ার্ড ড্রাইভ বা একটি ফাইল মন্তব্য৷ উল্লেখ্য যে অনেক ধরনের কর্মের ধরন একাধিক ধরনের লক্ষ্য সমর্থন করে। উদাহরণস্বরূপ, যদিও Edit সাধারণত ড্রাইভ ফাইলগুলিতে প্রযোজ্য, Rename এবং Create মতো অন্যান্য ক্রিয়াগুলি ড্রাইভ ফোল্ডার এবং শেয়ার্ড ড্রাইভেও প্রযোজ্য হতে পারে। ড্রাইভ আইটেম নয় এমন লক্ষ্যগুলি এখনও একটিকে উল্লেখ করতে পারে, যেমন একটি ড্রাইভের রুট ফোল্ডার বা একটি ফাইল মন্তব্য ধারণকারী মূল নথি৷

  • Action : প্রতিটি DriveActivity রিসোর্সে এক বা একাধিক সম্পর্কিত অ্যাকশন থাকে। একটি Action একটি ইভেন্টের মতো স্বয়ংসম্পূর্ণ, যাতে এটি কেবলমাত্র অ্যাকশন সম্পর্কে বিস্তারিত প্রকার এবং তথ্যই নয়, একজন Actor , একটি Target এবং হয় একটি Timestamp বা TimeRange । অপ্রয়োজনীয়তা এড়াতে, যখন সামগ্রিক DriveActivity একই হয় তখন একটি Action তার নিজস্ব Target , Actor বা সময় ক্ষেত্রগুলি পূরণ করে না৷

  • ActionDetail : এটি একটি Action সম্পর্কে নির্দিষ্ট ধরনের এবং বিস্তারিত তথ্য। উদাহরণস্বরূপ, একটি Move অ্যাকশন বিশদটির একটি উত্স এবং গন্তব্য অবস্থান রয়েছে এবং একটি PermissionChange নির্দিষ্ট করে যে কে এখন একটি নথি অ্যাক্সেস করতে পারে এবং কোন বিশেষাধিকারগুলি সহ।

উদাহরণ প্রতিক্রিয়া

নমুনা প্রতিক্রিয়া দেখতে নিম্নলিখিত পর্যালোচনা করুন.

একজন ব্যবহারকারী ড্রাইভে একটি ফাইল সম্পাদনা করেছেন৷

একটি DriveActivity রিসোর্স শুধুমাত্র একটি কাজ অন্তর্ভুক্ত করতে পারে, যেমন একজন ব্যবহারকারী একটি ফাইল সম্পাদনা করে।

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]

এই আউটপুট নিম্নলিখিত মান অন্তর্ভুক্ত:

  • ACCOUNT_ID : ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ITEM_ID : ড্রাইভ আইটেমের আইডি।
  • TITLE : ড্রাইভ আইটেমের শিরোনাম।

মনে রাখবেন যে এই প্রতিক্রিয়ার Action অবজেক্টে Actor , Target বা timestamp অন্তর্ভুক্ত নয় কারণ সেগুলি সামগ্রিক DriveActivity মতোই৷

দুই ব্যবহারকারী একই সময়ে একই ফাইল সম্পাদনা করেছেন

যখন একটি ConsolidationStrategy ব্যবহার করা হয়, তখন সম্পর্কিত ক্রিয়াগুলিকে একটি সম্মিলিত DriveActivity গোষ্ঠীভুক্ত করা হয়। এই উদাহরণে, দুটি অনুরূপ ক্রিয়াগুলিকে গোষ্ঠীভুক্ত করা হয়েছে: দুটি ভিন্ন ব্যবহারকারীর থেকে একটি Edit কর্মের ধরন৷

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "timeRange":{
    "startTime":{ "seconds":"1541089823", "nanos":712000000 },
    "endTime":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]

এই আউটপুট নিম্নলিখিত মান অন্তর্ভুক্ত:

  • ACCOUNT_ID_1 : প্রথম ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ACCOUNT_ID_2 : দ্বিতীয় ব্যবহারকারীর ID।
  • ITEM_ID : ড্রাইভ আইটেমের আইডি।
  • TITLE : ড্রাইভ আইটেমের শিরোনাম।

মনে রাখবেন যে এই প্রতিক্রিয়ার Action অবজেক্টটি Target অন্তর্ভুক্ত করে না কারণ এটি সামগ্রিক DriveActivity মতো।

উদাহরণটি আরও ব্যাখ্যা করে যে কীভাবে অ্যাপগুলি DriveActivity শুধুমাত্র সংক্ষিপ্ত তথ্য ব্যবহার করতে পারে, ব্যক্তিগত ক্রিয়াগুলি না দেখে৷ প্রতিক্রিয়াটি নির্দেশ করে যে দুটি ব্যবহারকারী একটি প্রদত্ত ফাইলকে সময়ের ব্যবধানে সম্পাদনা করেছেন।

একজন ব্যবহারকারী একটি নতুন ডিরেক্টরিতে দুটি ফাইল সরান

এই উদাহরণে, ConsolidationStrategy দুটি সম্পর্কিত Move ক্রিয়াগুলিকে গোষ্ঠীভুক্ত করেছে কারণ ফাইলগুলি একই উত্স থেকে একই গন্তব্যে একই সময়ে সরানো হয়েছিল।

"activities":[{
  "primaryActionDetail":{
    "move":{
      "addedParents":[ { ... } ]
      "removedParents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]

এই আউটপুট নিম্নলিখিত মান অন্তর্ভুক্ত:

  • ACCOUNT_ID : ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ITEM_ID_1 : প্রথম ড্রাইভ আইটেমের আইডি৷
  • ITEM_ID_2 : দ্বিতীয় ড্রাইভ আইটেমের আইডি৷
  • TITLE_1 : প্রথম ড্রাইভ আইটেমের শিরোনাম৷
  • TITLE_2 : দ্বিতীয় ড্রাইভ আইটেমের শিরোনাম৷

মনে রাখবেন যে এই প্রতিক্রিয়ার Action অবজেক্টে Actor বা timestamp অন্তর্ভুক্ত নেই কারণ সেগুলি সামগ্রিক DriveActivity মতো।