نموذج بيانات واجهة برمجة تطبيقات النشاط في Drive

يشرح هذا الدليل المكونات الأساسية للردود في Google Drive Activity API. لعرض الأمثلة وكيفية تفسيرها.

أغراض

  • 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 الإجمالية.