Google Drive etkinliklerine abone olma

Bu sayfada, Google Workspace Events API'yi kullanarak uygulamanızın abone olabileceği Google Drive etkinlikleri açıklanmaktadır. Hangi etkinlik türlerine ihtiyacınız olduğuna karar verdikten sonra Drive'dan etkinlik almaya başlamak için abonelik oluşturun.

Drive için uygulama geliştirme hakkında daha fazla bilgi edinmek istiyorsanız Google Drive API'ye genel bakış başlıklı makaleyi inceleyin.

Desteklenen Drive etkinlikleri

Google Workspace abonelikleri, Drive'daki aşağıdaki değişiklik türleriyle ilgili etkinlikler almanıza olanak tanır:

  • Dosya:
    • Klasöre veya ortak Drive'a eklenmişse
    • Bir klasöre veya ortak Drive'a taşınmışsa
    • Düzenlenmiş veya yeni bir düzeltme yüklendiğinde
    • Çöp kutusuna taşınmış veya çöp kutusundan kaldırılmışsa
  • Bir dosyada erişim teklifi oluşturulur veya çözümlenir.

Etkinlikler için izleyebileceğiniz kaynaklar

Etkinlikleri almak için izlenecek bir Drive kaynağı belirtirsiniz. Bu kaynak, aboneliğin hedef kaynağı olarak adlandırılır.

Google Workspace Events API, Drive için aşağıdaki hedef kaynakları destekler:

Hedef kaynak Biçim Sınırlamalar (varsa)
Dosya //drive.googleapis.com/files/FILE

Burada FILE, Drive API files kaynağının kaynak adındaki kimliktir. Kimliği dosyanın URL'sinden veya files.list yöntemini kullanarak alabilirsiniz.

Aboneliği yetkilendiren kullanıcının, etkinliğe abone olma işlemiyle ilgili olarak abonelikteki dosya üzerinde izni olmalıdır.
Ortak Drive //drive.googleapis.com/drives/DRIVE

Burada DRIVE, Drive API drives kaynağının kaynak adındaki kimliktir. Kimliği sürücünün URL'sinden veya drives.list yöntemini kullanarak alabilirsiniz.

Abonelik yalnızca kullanıcının Google Workspace hesabı veya Google Hesabı aracılığıyla üye olduğu ortak drive'daki öğelerle ilgili etkinlikleri alır.

Abonelik oluşturmak için kullanılan etkinlik türleri

Bir Drive kaynağına abonelik oluşturduğunuzda, hangi etkinlik türlerini almak istediğinizi belirtmek için eventTypes[] alanını kullanırsınız. Etkinlik türleri, CloudEvents spesifikasyonuna göre biçimlendirilir. Örneğin: google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Örneğin, bir klasörde veya ortak Drive'da oluşturulan dosyayla ilgili etkinlikleri almak için dosyayı hedef kaynak, etkinlik türünü ise google.workspace.drive.file.v3.created olarak belirtirsiniz. Bir dosyada erişim teklifi oluşturulmasıyla ilgili etkinlikleri almak için hedef kaynak olarak erişim teklifini, etkinlik türü olarak da google.workspace.drive.accessproposal.v3.created değerini belirtirsiniz. Etkinliklerin işleyiş şekli hakkında daha fazla bilgi edinmek için Google Workspace etkinliklerinin yapısı başlıklı makaleyi inceleyin.

Aşağıdaki tabloda, Drive kaynaklarına abonelikler için hangi etkinlik türlerinin desteklendiği gösterilmektedir:

Etkinlik türü Biçim Kaynak verileri
Dosya abonelikleri  
Bir klasöre veya ortak Drive'a dosya eklendiğinde

google.workspace.drive.file.v3.created

file

Bir dosya, klasöre veya ortak Drive'a taşındığında

google.workspace.drive.file.v3.moved

file

Bir dosya düzenlendiğinde veya yeni bir düzeltme yüklendiğinde

google.workspace.drive.file.v3.contentChanged

file

Bir dosya silindiğinde

google.workspace.drive.file.v3.deleted

file

Bir dosya çöp kutusuna taşındığında

google.workspace.drive.file.v3.trashed

file

Bir dosya çöp kutusundan kaldırıldığında

google.workspace.drive.file.v3.untrashed

file

Bir dosyada erişim önerisi oluşturulduğunda

google.workspace.drive.accessproposal.v3.created

accessproposal

Bir dosyada erişim önerisi çözümlendiğinde

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Ortak Drive'lara abonelikler  
Bir klasöre veya ortak Drive'a dosya eklendiğinde

google.workspace.drive.file.v3.created

file

Bir dosya, klasöre veya ortak Drive'a taşındığında

google.workspace.drive.file.v3.moved

file

Bir dosya düzenlendiğinde veya yeni bir düzeltme yüklendiğinde

google.workspace.drive.file.v3.contentChanged

file

Bir dosya silindiğinde

google.workspace.drive.file.v3.deleted

file

Bir dosya çöp kutusuna taşındığında

google.workspace.drive.file.v3.trashed

file

Bir dosya çöp kutusundan kaldırıldığında

google.workspace.drive.file.v3.untrashed

file

Bir dosyada erişim önerisi oluşturulduğunda

google.workspace.drive.accessproposal.v3.created

accessproposal

Bir dosyada erişim önerisi çözümlendiğinde

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Etkinlik verileri

Bu bölümde, Drive'daki etkinliklerle ilgili etkinlik verileri ve örnek yükler açıklanmaktadır.

Google Workspace aboneliğiniz Drive'dan bir etkinlik aldığında data alanı, etkinliğin yükünü içerir. Bu yük, değiştirilen Google Workspace kaynağı hakkında bilgi içerir. Örneğin, dosya etkinliklerine abone olduysanız bu etkinliklerin yükü, değişen file kaynağıyla ilgili bilgileri içerir.

Etkinlik yükündeki kaynak verileri

Abonelik oluştururken yükün kaynakla ilgili ayrıntıları mı yoksa yalnızca kaynağın adını mı içermesini istediğinizi belirtebilirsiniz. Örneğin, Drive'daki dosyalarla ilgili etkinlikler almak istiyorsanız etkinlik yükünde hangi files kaynağı alanlarını almak istediğinizi belirtebilirsiniz.

Aşağıdaki tabloda, Drive kaynağına abonelik için JSON yüklerine ilişkin örnekler verilmiştir. Dosya kimliği, files/^[01][0-9a-zA-Z_-]+$/ şeklinde yapılandırılmış harfler, sayılar ve bazı özel karakterler içeriyor. Örneğin, files/1aaabbbAAABBB111222-_. Aboneliğin aldığı her etkinlik için yük, etkinliğin data alanında görünür:

Örnek Etkinlik türü JSON yükü

Kullanıcı, bir klasöre veya ortak Drive'a dosya eklediğinde

google.workspace.drive.file.v3.created

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Bir kullanıcı, bir dosyayı klasöre veya ortak Drive'a taşıdığında

google.workspace.drive.file.v3.moved

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Bir kullanıcı dosyayı düzenlediğinde veya yeni bir düzeltme yüklendiğinde

google.workspace.drive.file.v3.contentChanged

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Bir kullanıcı bir dosyayı sildiğinde

google.workspace.drive.file.v3.deleted

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Kullanıcı bir dosyayı çöp kutusuna gönderdiğinde

google.workspace.drive.file.v3.trashed

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Kullanıcı, çöp kutusundan bir dosyayı geri yükler.

google.workspace.drive.file.v3.untrashed

Kaynak verilerini içerir
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Kullanıcı, bir dosyada erişim önerisi oluşturur.

google.workspace.drive.accessproposal.v3.created

Kaynak verilerini içerir
{
    "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"
          }
        ]
      }
    ]
}
      
Kaynak verileri hariç tutulur.
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Bir kullanıcı, bir dosyadaki erişim önerisini çözümler.

google.workspace.drive.accessProposal.v3.resolved

Kaynak verilerini içerir
{
    "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"
          }
        ]
      }
    ]
}
      
Kaynak verileri hariç tutulur.
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Sınırlamalar

  • includeDescendants boolean alanı DriveOptions true olduğunda, ortak Drive'lardaki ve klasörlerdeki Drive abonelikleri, etkinliği tetikleyen dosya Drive aboneliği için kullanılan klasörün çok altında iç içe yerleştirilmiş olsa bile her zaman bir etkinlik gönderir.
  • Bir klasörde abonelik oluşturmuş olsanız bile, kullanıcıya veya uygulamaya erişim izni verilmemiş olabileceği için dosya hiyerarşisindeki tüm etkinlikleri almayabilirsiniz. Bu durumda abonelik etkin kalmaya devam eder ancak erişiminiz olmayan kaynaklarla ilgili etkinlik almazsınız.
  • Abonelikler, tüm dosya ve klasörlerdeki etkinlikler için desteklenir ancak ortak Drive'ların kök klasöründe desteklenmez. Abonelikler yalnızca ortak drive'lar içindeki dosya ve klasörlerde desteklenir. Ortak Drive'ların kök klasöründe doğrudan yapılan değişiklikler etkinlikleri tetiklemez.
  • Aboneliği yetkilendiren kullanıcının, abone olduğu etkinliklere karşılık gelen dosya üzerinde izni olmalıdır.
  • Abonelik yalnızca kullanıcının Google Workspace hesabı veya Google Hesabı üzerinden erişebildiği kaynakların etkinliklerini alır.