در رویدادهای 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 است. می توانید شناسه را از آدرس فایل یا با استفاده از روش files.list دریافت کنید.

کاربری که اشتراک را مجاز می‌کند، باید در مورد فایل موجود در اشتراک نسبت به اشتراک رویداد مجوز داشته باشد.
درایو مشترک //googleapis.com/drive/v3/drives/ DRIVE

که در آن DRIVE شناسه در نام منبع منبع drives Drive API است. می توانید شناسه را از URL درایو یا با استفاده از روش 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 را توضیح می‌دهد.

وقتی اشتراک Google Workspace شما رویدادی را از Drive دریافت می‌کند، فیلد data حاوی محموله رویداد است. این محموله اطلاعاتی درباره منبع Google Workspace دارد که تغییر کرده است. برای مثال، اگر در رویدادهای فایل مشترک شده‌اید، بارگذاری این رویدادها حاوی اطلاعاتی درباره منبع file است که تغییر کرده است.

داده های منبع در بارگذاری رویداد

وقتی اشتراکی ایجاد می‌کنید، می‌توانید تعیین کنید که آیا می‌خواهید بارگذاری شامل جزئیات مربوط به منبع باشد یا فقط نام منبع. برای مثال، اگر می‌خواهید رویدادهای مربوط به فایل‌ها را در Drive دریافت کنید، می‌توانید مشخص کنید که کدام فیلدهای یک منبع files را می‌خواهید در بارگذاری رویداد دریافت کنید.

جدول زیر نمونه هایی از بارهای JSON را برای اشتراک در منبع Drive ارائه می دهد. شناسه فایل حاوی حروف، اعداد و برخی نویسه‌های خاص است که به صورت files/^[01][0-9a-zA-Z_-]+$/ . به عنوان مثال، files/1aaabbbAAABBB111222-_ . برای هر رویدادی که اشتراک دریافت می‌کند، محموله در قسمت data رویداد ظاهر می‌شود:

مثال نوع رویداد بار 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 خود به آنها دسترسی دارد.