این راهنما اجزای اصلی یک پاسخ را در 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":[{
"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 : شناسه کاربر. برای دریافت اطلاعات بیشتر می توان از آن با People API استفاده کرد.
- ITEM_ID : شناسه مورد Drive.
- TITLE : عنوان مورد Drive.
توجه داشته باشید که شی 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 : شناسه اولین کاربر. برای دریافت اطلاعات بیشتر می توان از آن با People API استفاده کرد.
- ACCOUNT_ID_2 : شناسه کاربر دوم.
- ITEM_ID : شناسه مورد Drive.
- TITLE : عنوان مورد Drive.
توجه داشته باشید که شی 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 : شناسه کاربر. برای دریافت اطلاعات بیشتر می توان از آن با People API استفاده کرد.
- ITEM_ID_1 : شناسه اولین مورد Drive.
- ITEM_ID_2 : شناسه مورد دوم Drive.
- TITLE_1 : عنوان اولین مورد Drive.
- TITLE_2 : عنوان دومین مورد Drive.
توجه داشته باشید که شی Action در این پاسخ شامل Actor یا timestamp نمیشود، زیرا آنها مشابه DriveActivity کلی هستند.