בדף הזה מוסבר על האירועים ב-Google Drive שאפשר להירשם אליהם באפליקציה באמצעות Google Workspace Events API. אחרי שמחליטים אילו סוגי אירועים רוצים לקבל, יוצרים מינוי כדי להתחיל לקבל אירועים מ-Drive.
מידע נוסף על פיתוח אפליקציות ל-Drive זמין ב סקירה הכללית על Google Drive API.
אירועים נתמכים ב-Drive
מינויים ל-Google Workspace מאפשרים לכם לקבל אירועים לגבי סוגי השינויים הבאים ב-Drive:
נוצרת הצעה לגישה או שהיא נפתרת בקובץ.
תגובה נוצרת, נערכת, נסגרת, נפתחת מחדש או נמחקת בקובץ או בקובץ בתוך אחסון שיתופי.
קובץ הוא:
- נוספו לתיקייה או לאחסון שיתופי.
- הועבר לתיקייה או לאחסון שיתופי.
- הועלתה גרסה חדשה או גרסה שנערכה.
- הועברו לאשפה או הוסרו מהאשפה.
- שונה שם (השם של קובץ או תיקייה השתנה).
תגובה נוצרת, נערכת או נמחקת בשרשור תגובות בקובץ או בקובץ באחסון שיתופי.
משאבים שאפשר לעקוב אחרי אירועים שקשורים אליהם
כדי לקבל אירועים, צריך לציין משאב ב-Drive למעקב, שנקרא משאב היעד של המינוי.
Google Workspace Events API תומך במשאבי היעד הבאים ב-Drive:
| משאב היעד | אופן הלימוד | מגבלות (אם רלוונטי) |
|---|---|---|
| קובץ |
//drive.googleapis.com/files/FILE
כאשר FILE הוא המזהה ב
שם המשאב של משאב |
למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ במסגרת המינוי ביחס לאירוע ההרשמה. |
| אחסון שיתופי |
//drive.googleapis.com/drives/DRIVE
כאשר DRIVE הוא המזהה ב שם המשאב של משאב |
המנוי מקבל רק אירועים שקשורים לפריטים בתיקייה המשותפת שבה המשתמש הוא חבר דרך חשבון 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:
| סוג האירוע | אופן הלימוד | נתוני משאבים | ||
|---|---|---|---|---|
| הרשמה לעדכונים על קבצים ותיקיות באחסון השיתופי | ||||
| נוצרת הצעה לגישה לקובץ. |
|
|
||
| הצעה לגישה נפתרה בקובץ. |
|
|
||
| תגובה נוצרת בקובץ או בקובץ בתוך אחסון שיתופי. |
|
|
||
| תגובה נערכת בקובץ או בקובץ בתוך אחסון שיתופי. |
|
|
||
| תגובה נסגרה בקובץ או בקובץ באחסון שיתופי. |
|
|
||
| תגובה נפתחת מחדש בקובץ או בקובץ באחסון שיתופי. |
|
|
||
| תגובה נמחקת בקובץ או בקובץ בתוך אחסון שיתופי. |
|
|
||
| קובץ נוסף לתיקייה או לאחסון שיתופי. |
|
|
||
| קובץ מועבר לתיקייה או לאחסון שיתופי. |
|
|
||
| קובץ נערך או שגרסה חדשה שלו מועלית. |
|
|
||
| קובץ נמחק. |
|
|
||
| קובץ מועבר לאשפה. |
|
|
||
| קובץ מוסר מהאשפה. |
|
|
||
| שם של קובץ משתנה. |
|
|
||
| תשובה נוצרת בשרשור תגובות בקובץ או בקובץ באחסון שיתופי. |
|
|
||
| תשובה נערכת בשרשור תגובות בקובץ או בקובץ באחסון שיתופי. |
|
|
||
| תשובה נמחקת בשרשור תגובות בקובץ או בקובץ בתוך אחסון שיתופי. |
|
|
||
נתוני אירוע
בקטע הזה מתוארים נתוני אירועים ומטענים לדוגמה של אירועים ב-Drive.
כשמינוי Google Workspace מקבל אירוע מ-Drive, השדה data מכיל את מטען הייעודי (payload) של האירוע. מטען הנתונים הזה מכיל מידע על משאב Google Workspace שהשתנה. לדוגמה, אם נרשמתם לאירועים שקשורים לקבצים, מטען הנתונים של האירועים האלה מכיל מידע על משאב files שהשתנה.
נתוני משאבים במטען הייעודי של האירוע
כשיוצרים מינוי, אפשר לציין אם רוצים שהמטען הייעודי (Payload) יכלול פרטים על המשאב, או רק את השם של המשאב. לדוגמה, אם רוצים לקבל אירועים לגבי קבצים ב-Drive, אפשר לציין אילו שדות של files משאב רוצים לקבל במטען הייעודי (payload) של האירוע.
בטבלה הבאה מופיעות דוגמאות למטענים ייעודיים (payloads) של JSON להרשמה למשאב Drive. מזהה הקובץ מכיל אותיות, מספרים ותווים מיוחדים מסוימים במבנה files/^[01][0-9a-zA-Z_-]+$/. לדוגמה, files/1aaabbbAAABBB111222-_. לכל אירוע שהמינוי מקבל, מטען הייעודי (payload) מופיע בשדה data של האירוע:
| דוגמה | סוג האירוע | מטען ייעודי (payload) של JSON |
|---|---|---|
משתמש יוצר הצעה לגישה לקובץ. |
|
כולל נתוני משאבים
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "alex@altostrat.com",
"requesterEmailAddress": "kai@cymbalgroup.com",
"requestMessage": "grant me access to this file",
"rolesAndViews": [
{
"role": "writer",
"view": "published"
}
]
}
]
}
לא כולל נתוני משאבים
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
משתמש פותר הצעה לגישה לקובץ. |
|
כולל נתוני משאבים
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "alex@altostrat.com",
"requesterEmailAddress": "kai@cymbalgroup.com",
"requestMessage": "resolve access to this file",
"rolesAndViews": [
{
"role": "writer",
"view": "published"
}
]
}
]
}
לא כולל נתוני משאבים
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
משתמש יוצר תגובה בקובץ. |
|
כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש עורך תגובה בקובץ. |
|
כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש סוגר תגובה בקובץ. |
|
כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש פותח מחדש תגובה בקובץ. |
|
כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש מוחק תגובה בקובץ. |
|
כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש מוסיף קובץ לתיקייה או לאחסון שיתופי. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש מעביר קובץ לתיקייה או לאחסון שיתופי. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש עורך קובץ או שמועלה גרסה חדשה. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש מוחק קובץ. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש מעביר קובץ לאשפה. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש משחזר קובץ מהאשפה. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש משנה שם של קובץ או תיקייה. |
|
כולל נתוני משאבים
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
לא כולל נתוני משאבים
{
"file": {
"id": "FILE_ID"
}
}
|
משתמש יוצר תשובה לתגובה בשרשור תגובות. |
|
כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש עורך תשובה לתגובה בשרשור תגובות. |
|
כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
משתמש מוחק תשובה לתגובה בשרשור תגובות. |
|
כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
לא כולל נתוני משאבים
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
מגבלות
- כששדה הבוליאני
includeDescendantsב-DriveOptionsהואtrue, מינויים ל-Drive בתיקיות ובתיקיות אחסון שיתופי תמיד שולחים אירוע, גם אם הקובץ שהפעיל את האירוע נמצא ברמה נמוכה יותר בתיקייה שמשמשת למינוי ל-Drive. - יכול להיות שיצרתם מינוי לתיקייה, אבל לא תקבלו את כל האירועים בהיררכיית הקבצים כי יכול להיות שלא ניתנה למשתמש או לאפליקציה גישה אליהם. במקרה כזה, המינוי נשאר פעיל אבל לא תקבלו אירועים לגבי משאבים שאין לכם גישה אליהם.
- המנויים נתמכים לאירועים בכל הקבצים והתיקיות, אבל לא בתיקיית הבסיס של אחסונים שיתופיים. אפשר להירשם לעדכונים רק לגבי קבצים ותיקיות באחסון שיתופי. שינויים שמתבצעים ישירות בתיקיית הבסיס של האחסון השיתופי לא יפעילו אירועים.
- למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ שמתאים לאירועים שהוא נרשם לקבל עליהם עדכונים.
- המינוי מקבל רק אירועים של משאבים שהמשתמש יכול לגשת אליהם דרך חשבון Google Workspace או חשבון Google שלו.