ড্রাইভ কার্যকলাপ 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":[{
  "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 : ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ITEM_ID : ড্রাইভ আইটেমের আইডি।
  • TITLE : ড্রাইভ আইটেমের শিরোনাম।

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

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

যখন একত্রীকরণ চালু থাকে, তখন সম্পর্কিত ক্রিয়াগুলিকে একটি DriveActivity গোষ্ঠীভুক্ত করা হয়। এই উদাহরণে, 2টি অনুরূপ ক্রিয়াগুলিকে গোষ্ঠীভুক্ত করা হয়েছে: 2টি ভিন্ন ব্যবহারকারীর থেকে একটি 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 : প্রথম ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ACCOUNT_ID_2 : দ্বিতীয় ব্যবহারকারীর ID।
  • ITEM_ID : ড্রাইভ আইটেমের আইডি।
  • TITLE : ড্রাইভ আইটেমের শিরোনাম।

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

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

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

এই উদাহরণে, একত্রীকরণ কৌশলটি 2টি সম্পর্কিত 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 : ব্যবহারকারীর ID। এটি আরও তথ্য পেতে People API এর সাথে ব্যবহার করা যেতে পারে।
  • ITEM_ID_1 : প্রথম ড্রাইভ আইটেমের আইডি৷
  • ITEM_ID_2 : দ্বিতীয় ড্রাইভ আইটেমের আইডি৷
  • TITLE_1 : প্রথম ড্রাইভ আইটেমের শিরোনাম৷
  • TITLE_2 : দ্বিতীয় ড্রাইভ আইটেমের শিরোনাম৷

মনে রাখবেন যে এই প্রতিক্রিয়ার ক্রিয়াগুলি Actor বা TimeStamp অন্তর্ভুক্ত করে না কারণ সেগুলি সামগ্রিক DriveActivity মতো৷