מודל נתונים ב-Drive Activity API

במדריך הזה מוסברים המרכיבים העיקריים של תשובה ב-Google Drive Activity API, כולל דוגמאות ואיך לפרש אותן.

Objects

  • DriveActivity – המשאב הראשי שמוחזר על-ידי שאילתות ל-Drive Activity API. היא מתארת גורם אחד או יותר שמבצעים פעולה אחת או יותר שמשפיעה על יעד אחד או יותר.

  • Timestamp ו-TimeRange – מפורטים, בהתאמה, נקודת זמן אחת שבה התרחשה פעילות, או ההתחלה והסיום של הפעילות במהלך פרק זמן מסוים.

  • Actor – בדרך כלל Actor הוא משתמש קצה. עם זאת, לפעמים אירוע מערכת יכול להפעיל Action כשאדמין פועל כמשתמש או כעצמו, או כשהוא מבצע את הפעולה הזו לאדם בלתי ניתן לזיהוי. כל אחד מהמקרים האלה כולל את ההודעה Actor.

  • TargetTarget הוא האובייקט של פעילות כמו קובץ, תיקייה, אחסון שיתופי או תגובה לקובץ. לתשומת ליבכם: יש הרבה סוגי פעולות שתומכים ביותר מסוג אחד של טירגוט. לדוגמה, למרות ש-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 באופן כללי.