במדריך הזה מוסברים המרכיבים העיקריים של תשובה ב-Google Drive Activity API, כולל דוגמאות ואיך לפרש אותן.
Objects
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
משני משתמשים שונים.
"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
באופן כללי.