يوضّح هذا الدليل المكوّنات الرئيسية للاستجابة في Google Drive Activity API، ويقدّم أمثلة وكيفية تفسيرها.
العناصر
DriveActivity
: هو المرجع الأساسي الذي تعرضه طلبات البحث التي يتم إجراؤها على واجهة برمجة التطبيقات Drive Activity API. ويصف الفاعلين الذين ينفّذون إجراءً واحدًا أو أكثر يؤثّر في هدف واحد أو أكثر.Timestamp
وTimeRange
: يصف كلاهما، على التوالي، إما نقطة زمنية واحدة حدث فيها النشاط، أو وقت بدء النشاط وانتهائه على مدار فترة زمنية.
Actor
: عادةً ما يكونActor
مستخدمًا نهائيًا. ومع ذلك، في بعض الأحيان، يمكن أن يؤدي حدث نظام إلى بدء عمليةAction
عندما يتصرّف مشرف كمستخدِم أو باسمه الخاص، أو عندما ينفّذها شخص غير محدّد الهوية. تتضمن رسالةActor
كل حالة من هذه الحالات.Target
:Target
هو عنصر النشاط، مثل ملف أو مجلد أو مساحة تخزين سحابي مشتركة أو تعليق على ملف. يُرجى العِلم أنّ العديد من أنواع الإجراءات تتيح أكثر من نوع واحد من الأهداف. على سبيل المثال، على الرغم من أنّ الإجراءEdit
ينطبق بشكل عام على ملفات Drive، يمكن أن تنطبق أيضًا إجراءات أخرى، مثلRename
وCreate
، على مجلدات 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
العام.