این صفحه رویدادهای 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 شناسه در نام منبع منبع | کاربری که اشتراک را مجاز میکند، باید در مورد فایل موجود در اشتراک نسبت به اشتراک رویداد مجوز داشته باشد. |
درایو مشترک | //googleapis.com/drive/v3/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
حاوی محموله رویداد است. این محموله اطلاعاتی درباره منبع Google Workspace دارد که تغییر کرده است. برای مثال، اگر در رویدادهای فایل مشترک شدهاید، بارگذاری این رویدادها حاوی اطلاعاتی درباره منبع file
است که تغییر کرده است.
داده های منبع در بارگذاری رویداد
وقتی اشتراکی ایجاد میکنید، میتوانید تعیین کنید که آیا میخواهید بارگذاری شامل جزئیات مربوط به منبع باشد یا فقط نام منبع. برای مثال، اگر میخواهید رویدادهای مربوط به فایلها را در Drive دریافت کنید، میتوانید مشخص کنید که کدام فیلدهای یک منبع files
را میخواهید در بارگذاری رویداد دریافت کنید.
جدول زیر نمونه هایی از بارهای JSON را برای اشتراک در منبع Drive ارائه می دهد. شناسه فایل حاوی حروف، اعداد و برخی نویسههای خاص است که به صورت files/^[01][0-9a-zA-Z_-]+$/
. به عنوان مثال، files/1aaabbbAAABBB111222-_
. برای هر رویدادی که اشتراک دریافت میکند، محموله در قسمت data
رویداد ظاهر میشود:
مثال | نوع رویداد | بار JSON |
---|---|---|
کاربر یک فایل را به یک پوشه یا درایو مشترک اضافه می کند. | | شامل داده های منابع است { "fileCreatedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileCreatedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک فایل را به یک پوشه یا درایو مشترک منتقل می کند. | | شامل داده های منابع است { "fileMovedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileMovedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک فایل را ویرایش می کند یا یک نسخه جدید آپلود می شود. | | شامل داده های منابع است { "fileContentChangedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileContentChangedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک فایل را حذف می کند. | | شامل داده های منابع است { "fileDeletedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileDeletedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک فایل را حذف می کند. | | شامل داده های منابع است { "fileTrashedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileTrashedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک فایل را از سطل زباله بازیابی می کند. | | شامل داده های منابع است { "fileUntrashedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } داده های منابع را در بر نمی گیرد { "fileUntrashedEvent": { "file": { "id": "FILE_ID" } } } |
کاربر یک پیشنهاد دسترسی روی یک فایل ایجاد می کند. | | شامل داده های منابع است { "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" } ] } } |
یک کاربر یک پیشنهاد دسترسی روی یک فایل را حل می کند. | | شامل داده های منابع است { "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 خود به آنها دسترسی دارد.