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

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

אובייקטים

  • 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: מזהה המשתמש. אפשר להשתמש בו עם 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: מזהה המשתמש. אפשר להשתמש בו עם API של אנשים כדי לקבל מידע נוסף.
  • ITEM_ID_1: המזהה של הפריט הראשון ב-Drive.
  • ITEM_ID_2: המזהה של הפריט השני ב-Drive.
  • TITLE_1: שם הפריט הראשון ב-Drive.
  • TITLE_2: שם הפריט השני ב-Drive.

לתשומת ליבך: הפעולות בתשובה הזו לא כוללות את Actor או TimeStamp כי הם זהים ל-DriveActivity הכללי.