במדריך הזה מוסבר איך לשלוח בקשות ב-Google Drive Activity API באמצעות השיטה activity.query
.
מפתח שאילתה
יש 2 דרכים לבקש פעילות: לפי פריט ב-Google Drive או כל מה שנמצא מתחת להיררכיית התיקיות.
itemName
: הפורמט של המפתח הזה הוא "items/ITEM_ID". בדרך כלל זהו קובץ ב-Drive. אם תציינו תיקייה עבור המפתח הזה, תוצג בה פעילות לגבי התיקייה, למשל תאריך היצירה או השם החדש.ancestorName
: הפורמט של המפתח הזה הוא "items/ITEM_ID", והתגובה כוללת פעילות בכל הפריטים שבעץ המשנה שמתחת לתיקייה הזו.
אם לא הוגדר מפתח, ברירת המחדל היא שימוש ב-ancestorName
של 'items/root' והצגה של הפעילות לכל הפריטים ב-Drive שלכם.
עימוד
בשדה pageSize
תוכלו לבקש מספר משוער של פעילויות שיחזרו בכל תשובה. המספר בפועל של הפעילויות שהוחזרו ישתנה, ולכן האפליקציה צריכה לטפל בכמויות שרירותיות בתגובה.
גודל הדפים מוגבל. אם לאפליקציה שלכם נדרשות פעילויות רבות, תוכלו לשלוח מספר בקשות באמצעות עימוד במקום להגדיר ערך גדול ל-pageSize
.
באופן ספציפי, אם יכול להיות שיש פעילות לאחזור גדולה יותר מזו שנכללת בתגובה, התשובה תכיל גם את nextPageToken
. כדי לאחזר תוצאות נוספות, חוזרים על אותה בקשה אבל מוסיפים שדה pageToken
עם הערך nextPageToken
מהתגובה הקודמת.
איחוד
Action
אובייקטים בדרך כלל מקובצים ומוחזרים בתוך משאב DriveActivity
יחיד. קיבוצים מסוימים של Action
מתרחשים באופן ספונטני, למשל העברת פריט לתיקייה משותפת שמובילה לשינוי בהרשאות.
אפשר גם לציין בבקשה את הערך ConsolidationStrategy
(שלפעמים נקרא צבירה או קיבוץ). כך מתאפשרת
קבוצות אחרות של אובייקטים קשורים של Action
, כמו מספר משתמשים שעורכים פריט
אחד או Actor
העברה של מספר קבצים לתיקיית Drive חדשה.
לAction
יש מאפיין אחד מסוג Actor
ואחד Target
, אבל אחרי הקיבוץ, אפשר לכלול ב-DriveActivity
מספר שחקנים ושל כמה מטרות.
עם זאת, גם אחרי הקיבוץ, תמיד יש פעולה 'ראשית' שמייצגת או הכי חשובה לכל הפעולות במשאב DriveActivity
, בהתאם לאסטרטגיית האיחוד המבוקשת.
כתוצאה מכך, גם אם מופעל איחוד וגם אם לא, יכול להיות שלקוחות רבים יוכלו לראות רק את התוכן ברמה העליונה של משאב DriveActivity
(כמו השחקנים והיעדים הקולקטיביים בprimaryActionDetail
) ומתעלמים מהפעולות המפורטות בתשובה.
מסננים
אפשר להגביל את הפעולות שעשויות להיות מוחזרות במשאב DriveActivity
על ידי יצירה של מחרוזת filter
בבקשה activity.query
. יש
2 שדות נתמכים: time
ו-detail.action_detail_case
.
סינון לפי שעה
כדי להגביל פעולות לפי טווח זמן, מציינים את שם השדה time
באמצעות אופרטורים מספריים בערכי תאריכים, שמצוינים באמצעות "AND" אופציונלי. צריך להשתמש באלפיות שנייה החל מ-1 בינואר 1970 או בפורמט RFC 3339, למשל:
time > 1452409200000 AND time <= 1492812924310
time >= "2016-01-10T01:02:03-05:00"
סינון לפי סוג
כדי להגביל לפי סוג הפעולה, צריך להחיל את שם השדה detail.action_detail_case
באמצעות האופרטור "has" (:
). אפשר להשתמש בערך יחיד או ברשימה של סוגי פעולות מותרות בתוך סוגריים, ולהפריד ביניהם ברווח. כדי למצוא רשימה של סוגי פעולות, אפשר לבדוק את האובייקטים ActionDetail
.
כדי להחריג סוג פעולה מהתגובה, מוסיפים מקף (-
) בתחילת מחרוזת המסנן.
הנה כמה דוגמאות לסוגי פעולות:
detail.action_detail_case:RENAME
detail.action_detail_case:(CREATE RESTORE)
-detail.action_detail_case:MOVE
שילובים
אפשר לשלב את תנאי הסינון האלה במחרוזת filter
אחת, למשל:
detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000
בקשות לדוגמה
מבקשים את 10 הפעילויות האחרונות של פריט ב-Drive:
{
"itemName": "items/ITEM_ID",
"pageSize": 10
}
בקשת פעילויות מאוחדות עבור כל פריט ב-Drive שנמצא בתיקיית ישות אב:
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
בקשה לכל הפעולות MOVE
ו-RENAME
בפריט ב-Drive:
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
בקשות לקבלת כל הפעילות החל מ-1 בינואר 2018 (אזור זמן EST):
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
לבקש כל הפעילויות, מלבד EDIT
פעולות, במהלך יוני 2017 (שעון UTC):
{
"ancestorName": "items/root",
"filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}