הרשמה לאירועים ב-Google Drive

בדף הזה מוסבר על האירועים ב-Google Drive שאפשר להירשם אליהם באפליקציה באמצעות Google Workspace Events API. אחרי שמחליטים אילו סוגי אירועים רוצים לקבל, יוצרים מינוי כדי להתחיל לקבל אירועים מ-Drive.

מידע נוסף על פיתוח אפליקציות ל-Drive זמין במאמר סקירה כללית על Google Drive API.

אירועים נתמכים ב-Drive

מינויים ל-Google Workspace מאפשרים לכם לקבל אירועים לגבי סוגי השינויים הבאים ב-Drive:

  • קובץ הוא:
    • נוספו לתיקייה או לאחסון שיתופי.
    • הועבר לתיקייה או לאחסון שיתופי.
    • הגרסה נערכה או שגרסה חדשה הועלתה.
    • הועברו לאשפה או הוסרו מהאשפה.
  • נוצרת הצעה לגישה או שהיא נפתרת בקובץ.

משאבים שאפשר לעקוב אחרי אירועים שקשורים אליהם

כדי לקבל אירועים, צריך לציין משאב ב-Drive למעקב, שנקרא משאב היעד של המינוי.

‫Google Workspace Events API תומך במשאבי היעד הבאים עבור Drive:

משאב היעד אופן הלימוד מגבלות (אם רלוונטי)
קובץ //googleapis.com/drive/v3/files/FILE

כאשר FILE הוא המזהה ב שם המשאב של משאב files ב-Drive API. אפשר לאתר את המזהה בכתובת ה-URL של הקובץ או באמצעות ה-method‏ files.list.

למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ במסגרת המינוי ביחס לאירוע המינוי.
אחסון שיתופי //googleapis.com/drive/v3/drives/DRIVE

כאשר DRIVE הוא המזהה ב שם המשאב של משאב drives ב-Drive API. אפשר לאתר את המזהה בכתובת ה-URL של Drive או באמצעות method‏ drives.list.

המינוי מקבל רק אירועים שקשורים לפריטים בתיקייה המשותפת שבה המשתמש הוא חבר דרך חשבון Google Workspace או חשבון Google שלו.

סוגי אירועים ליצירת מינויים

כשיוצרים מינוי למשאב ב-Drive, משתמשים בשדה eventTypes[] כדי לציין אילו סוגי אירועים רוצים לקבל. סוגי האירועים מעוצבים בהתאם למפרט CloudEvents, כמו google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

לדוגמה, כדי לקבל אירועים לגבי קובץ שנוצר בתיקייה או בכונן משותף, מציינים את הקובץ כמשאב היעד ואת סוג האירוע כ-google.workspace.drive.file.v3.created. כדי לקבל אירועים לגבי יצירת הצעה לגישה לקובץ, צריך לציין את ההצעה לגישה כמשאב היעד ואת סוג האירוע כ-google.workspace.drive.accessproposal.v3.created. מידע נוסף על אופן הפעולה של אירועים זמין במאמר מבנה האירועים ב-Google Workspace.

בטבלה הבאה מוצגים סוגי האירועים שנתמכים במינויים למשאבי Drive:

סוג האירוע אופן הלימוד נתוני משאבים
מינויים לקבצים  
קובץ נוסף לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.created

file

קובץ מועבר לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.moved

file

קובץ נערך או שגרסה חדשה שלו מועלית.

google.workspace.drive.file.v3.contentChanged

file

קובץ נמחק.

google.workspace.drive.file.v3.deleted

file

קובץ מועבר לאשפה.

google.workspace.drive.file.v3.trashed

file

קובץ מוסר מהאשפה.

google.workspace.drive.file.v3.untrashed

file

נוצרת הצעה לגישה לקובץ.

google.workspace.drive.accessproposal.v3.created

accessproposal

הצעה לגישה נפתרה בקובץ.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

מינויים לתיקיות אחסון שיתופי  
קובץ נוסף לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.created

file

קובץ מועבר לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.moved

file

קובץ נערך או שגרסה חדשה שלו מועלית.

google.workspace.drive.file.v3.contentChanged

file

קובץ נמחק.

google.workspace.drive.file.v3.deleted

file

קובץ מועבר לאשפה.

google.workspace.drive.file.v3.trashed

file

קובץ מוסר מהאשפה.

google.workspace.drive.file.v3.untrashed

file

נוצרת הצעה לגישה לקובץ.

google.workspace.drive.accessproposal.v3.created

accessproposal

הצעה לגישה נפתרה בקובץ.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

נתוני אירוע

בקטע הזה מתוארים נתוני אירועים ומטענים לדוגמה של אירועים ב-Drive.

כשמתקבל אירוע מ-Drive במינוי ל-Google Workspace, השדה data מכיל את מטען הייעודי (payload) של האירוע. המטען הייעודי (payload) הזה מכיל מידע על משאב Google Workspace שהשתנה. לדוגמה, אם נרשמתם לאירועים שקשורים לקבצים, מטען הייעודי (payload) של האירועים האלה מכיל מידע על משאב file שהשתנה.

נתוני משאבים במטען הייעודי של האירוע

כשיוצרים מינוי, אפשר לציין אם רוצים שהמטען הייעודי (Payload) יכלול פרטים על המשאב, או רק את השם של המשאב. לדוגמה, אם רוצים לקבל אירועים לגבי קבצים ב-Drive, אפשר לציין אילו שדות של files משאב רוצים לקבל במטען הייעודי (payload) של האירוע.

בטבלה הבאה מופיעות דוגמאות למטענים ייעודיים (payloads) של JSON להרשמה למשאב Drive. מזהה הקובץ מכיל אותיות, מספרים ותווים מיוחדים מסוימים במבנה files/^[01][0-9a-zA-Z_-]+$/. לדוגמה, files/1aaabbbAAABBB111222-_. לכל אירוע שהמינוי מקבל, מטען הייעודי (payload) מופיע בשדה data של האירוע:

דוגמה סוג האירוע מטען ייעודי (payload) של JSON

משתמש מוסיף קובץ לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.created

כולל נתוני משאבים
{
  "fileCreatedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileCreatedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש מעביר קובץ לתיקייה או לאחסון שיתופי.

google.workspace.drive.file.v3.moved

כולל נתוני משאבים
{
  "fileMovedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileMovedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש עורך קובץ או שגרסה חדשה מועלית.

google.workspace.drive.file.v3.contentChanged

כולל נתוני משאבים
{
  "fileContentChangedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileContentChangedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש מוחק קובץ.

google.workspace.drive.file.v3.deleted

כולל נתוני משאבים
{
  "fileDeletedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileDeletedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש מעביר קובץ לאשפה.

google.workspace.drive.file.v3.trashed

כולל נתוני משאבים
{
  "fileTrashedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileTrashedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש משחזר קובץ מהאשפה.

google.workspace.drive.file.v3.untrashed

כולל נתוני משאבים
{
  "fileUntrashedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
לא כולל נתוני משאבים
{
  "fileUntrashedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

משתמש יוצר הצעה לגישה לקובץ.

google.workspace.drive.accessproposal.v3.created

כולל נתוני משאבים
{
  "accessProposalCreatedEvent": {
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
  }
}
      
לא כולל נתוני משאבים
{
  "accessProposalCreatedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

משתמש פותר הצעה לגישה לקובץ.

google.workspace.drive.accessProposal.v3.resolved

כולל נתוני משאבים
{
  "accessProposalResolvedEvent": {
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
  }
}
      
לא כולל נתוני משאבים
{
  "accessProposalResolvedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

מגבלות

  • כשהשדה הבוליאני includeDescendants ב- DriveOptions הוא true, מינויים ל-Drive בתיקיות ובתיקיות אחסון שיתופי תמיד שולחים אירוע, גם אם הקובץ שהפעיל את האירוע נמצא ברמה נמוכה יותר בתיקייה שמשמשת למינוי ל-Drive.
  • יכול להיות שיצרתם מינוי לתיקייה, אבל לא תקבלו את כל האירועים בהיררכיית הקבצים כי יכול להיות שלא ניתנה למשתמש או לאפליקציה גישה אליהם. במקרה כזה, המינוי יישאר פעיל אבל לא תקבלו אירועים לגבי משאבים שאין לכם גישה אליהם.
  • המנויים נתמכים לאירועים בכל הקבצים והתיקיות, אבל לא בתיקיית הבסיס של אחסונים שיתופיים. אפשר להירשם לעדכונים רק לגבי קבצים ותיקיות באחסון שיתופי. שינויים שמתבצעים ישירות בתיקיית הבסיס של תיקיות באחסון השיתופי לא יפעילו אירועים.
  • למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ שמתאים לאירועים שהוא נרשם לקבלת עדכונים לגביהם.
  • המינוי מקבל רק אירועים של משאבים שהמשתמש יכול לגשת אליהם דרך חשבון Google Workspace או חשבון Google שלו.