במדריך הזה מוסבר מהם הרכיבים העיקריים של תגובה ב-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 הכולל.