این راهنما اجزای اصلی یک پاسخ را در 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
کلی هستند.