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:

  • Bir dosyada erişim teklifi oluşturulur veya çözümlenir.

  • Bir dosyada veya ortak Drive'daki bir dosyada yorum oluşturulur, düzenlenir, çözümlenir, yeniden açılır ya da silinir.

  • 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ış.
    • Yeniden adlandırılanlar (bir dosyanın veya klasörün başlığı değiştirildiğinde)
  • Bir dosyadaki veya ortak Drive'daki bir dosyada yorum dizisine yanıt oluşturulur, düzenlenir ya da silinir.

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 önerisi oluşturulmasıyla ilgili etkinlikleri almak için hedef kaynak olarak erişim önerisini, 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 ve ortak drive'lara abonelikler  
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

Bir dosyada veya ortak Drive'daki bir dosyada yorum oluşturulduğunda

google.workspace.drive.comment.v3.created

comment

Bir dosyada veya ortak Drive'daki bir dosyada yorum düzenlendiğinde

google.workspace.drive.comment.v3.edited

comment

Bir dosyada veya ortak Drive'daki bir dosyada yorum çözümlendiğinde

google.workspace.drive.comment.v3.resolved

comment

Bir dosyada veya ortak Drive'daki bir dosyada yorum yeniden açıldığında

google.workspace.drive.comment.v3.reopened

comment

Bir dosyada veya ortak Drive'daki bir dosyada yorum silindiğinde

google.workspace.drive.comment.v3.deleted

comment

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 dosya yeniden adlandırıldığında

google.workspace.drive.file.v3.renamed

file

Bir dosyada veya ortak Drive'daki bir dosyada yorum dizisine yanıt oluşturulduğunda

google.workspace.drive.reply.v3.created

reply

Bir dosyadaki veya ortak Drive'daki bir dosyada bulunan yorum dizisindeki yanıt düzenlendiğinde

google.workspace.drive.reply.v3.edited

reply

Bir dosyadaki veya ortak Drive'daki bir dosyada bulunan yorum dizisindeki yanıt silindiğinde

google.workspace.drive.reply.v3.deleted

reply

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şen Google Workspace kaynağı hakkında bilgi içerir. Örneğin, dosya etkinliklerine abone olduysanız bu etkinliklerin yükü, değişen files 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 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": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "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": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Kaynak verileri hariç tutulur.
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Bir kullanıcı, dosyaya yorum eklediğinde

google.workspace.drive.comment.v3.created

Kaynak verilerini içerir
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, dosyadaki yorumu düzenlediğinde

google.workspace.drive.comment.v3.edited

Kaynak verilerini içerir
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, dosyadaki yorumu çözdüğünde

google.workspace.drive.comment.v3.resolved

Kaynak verilerini içerir
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, dosyadaki bir yorumu yeniden açtığında

google.workspace.drive.comment.v3.reopened

Kaynak verilerini içerir
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, dosyadaki yorumu sildiğinde

google.workspace.drive.comment.v3.deleted

Kaynak verilerini içerir
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

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 dosyayı veya klasörü yeniden adlandırdığında

google.workspace.drive.file.v3.renamed

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ı, yorum dizisinde yorum yanıtı oluşturur.

google.workspace.drive.reply.v3.created

Kaynak verilerini içerir
{
    "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"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, yorum dizisindeki yorum yanıtını düzenlerse

google.workspace.drive.reply.v3.edited

Kaynak verilerini içerir
{
    "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"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Bir kullanıcı, yorum dizisindeki yorum yanıtını sildiğinde

google.workspace.drive.reply.v3.deleted

Kaynak verilerini içerir
{
    "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"
    }
}
      
Kaynak verileri hariç tutulur.
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Sınırlamalar

  • includeDescendants içindeki DriveOptions boolean alanı 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 geçmiş 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. Doğrudan ortak drive'ın kök klasöründe yapılan değişiklikler etkinlikleri tetiklemez.
  • Aboneliği yetkilendiren kullanıcının, abone olduğu etkinliklere karşılık gelen dosyada 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.