این راهنما اجزای اصلی یک پاسخ را در 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
گروه بندی می شوند. در این مثال، 2 اقدام مشابه گروه بندی شده اند: یک نوع اقدام Edit
از 2 کاربر مختلف.
"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
استفاده کنند، بدون اینکه به اقدامات فردی نگاه کنند. پاسخ نشان می دهد که 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 : شناسه کاربر. برای دریافت اطلاعات بیشتر می توان از آن با People API استفاده کرد.
- ITEM_ID_1 : شناسه اولین مورد Drive.
- ITEM_ID_2 : شناسه مورد دوم Drive.
- TITLE_1 : عنوان اولین مورد Drive.
- TITLE_2 : عنوان دومین مورد Drive.
توجه داشته باشید که کنشهای این پاسخ شامل Actor
یا TimeStamp
نمیشود، زیرا آنها با DriveActivity
کلی یکسان هستند.