במדריך הזה מוסבר מהם הרכיבים העיקריים של תגובה ב-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":[{
"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
, בלי לבדוק את הפעולות הספציפיות. התגובה מציינת ששני משתמשים ערכו קובץ מסוים לאורך תקופה מסוימת.
משתמש העביר שני קבצים לספרייה חדשה
בדוגמה הזו, המערכת קיבצה שתי פעולות Move
קשורות כי הקבצים הועברו מאותו מקור לאותו יעד באותו זמן.ConsolidationStrategy
"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
הכולל.