Drive Activity API veri modeli

Bu kılavuzda, Google Drive Activity API'deki bir yanıtın ana bileşenleri açıklanmakta, örnekler ve bunların nasıl yorumlanacağı gösterilmektedir.

Nesneler

  • DriveActivity: Drive Activity API'ye gönderilen sorgular tarafından döndürülen birincil kaynaktır. Bir veya daha fazla hedefi etkileyen bir veya daha fazla işlem gerçekleştiren bir veya daha fazla aktör tanımlar.

  • Timestamp ve TimeRange: Bunlar sırasıyla, etkinliğin gerçekleştiği tek bir zamanı veya etkinliğin bir süre boyunca gerçekleştiği başlangıç ve bitiş zamanını açıklar.

  • Actor: Actor genellikle son kullanıcıdır. Ancak bazen bir yönetici kullanıcı veya kendisi gibi davrandığında ya da kimliği tanımlanamayan bir kişi tarafından işlem yapıldığında sistem etkinliği Action tetiklenebilir. Actor mesajı bu durumların her birini kapsar.

  • Target: Target, bir etkinliğin nesnesi olan dosya, klasör, ortak Drive veya dosya yorumu gibi öğelerdir. Birçok işlem türünün birden fazla hedef türünü desteklediğini unutmayın. Örneğin, Edit genellikle Drive dosyaları için geçerli olsa da Rename ve Create gibi diğer işlemler Drive klasörleri ve ortak Drive'lar için de geçerli olabilir. Drive öğesi olmayan hedefler de Drive öğelerine atıfta bulunabilir (ör. bir Drive'ın kök klasörü veya dosya yorumu içeren üst doküman).

  • Action: Her DriveActivity kaynağının bir veya daha fazla ilgili işlemi vardır. Action, etkinlik gibi kendi kendine yeten bir öğedir. Yalnızca işlemle ilgili ayrıntılı türü ve bilgileri değil, aynı zamanda bir Actor, bir Target ve bir Timestamp veya TimeRange içerir. Yinelenen bilgileri önlemek için Action, genel DriveActivity ile aynı olan kendi Target, Actor veya zaman alanlarını doldurmaz.

  • ActionDetail: Bu, Action ile ilgili belirli tür ve ayrıntılı bilgilerdir. Örneğin, Move işlem ayrıntısında bir kaynak ve hedef konum bulunur. PermissionChange ise bir belgeye artık kimlerin ve hangi ayrıcalıklarla erişebileceğini belirtir.

Örnek yanıtlar

Örnek yanıtları görmek için aşağıdakileri inceleyin.

Kullanıcı Drive'da bir dosyayı düzenledi

DriveActivity kaynağı, yalnızca bir işlem (ör. bir kullanıcının tek bir dosyayı düzenlemesi) içerebilir.

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]

Bu çıkış aşağıdaki değerleri içerir:

  • ACCOUNT_ID: Kullanıcının kimliği. Daha fazla bilgi edinmek için People API ile kullanılabilir.
  • ITEM_ID: Drive öğesinin kimliği.
  • TITLE: Drive öğesinin başlığı.

Bu yanıttaki Action nesnesi, genel DriveActivity ile aynı olduğu için Actor, Target veya timestamp öğelerini içermez.

İki kullanıcı aynı dosyayı benzer zamanlarda düzenledi

Bir ConsolidationStrategy kullanıldığında, ilgili işlemler tek bir birleşik DriveActivity altında gruplandırılır. Bu örnekte, iki benzer işlem gruplandırılmıştır: iki farklı kullanıcıdan gelen bir Edit işlem türü.

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "timeRange":{
    "startTime":{ "seconds":"1541089823", "nanos":712000000 },
    "endTime":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]

Bu çıkış aşağıdaki değerleri içerir:

  • ACCOUNT_ID_1: İlk kullanıcının kimliği. Daha fazla bilgi edinmek için People API ile kullanılabilir.
  • ACCOUNT_ID_2: İkinci kullanıcının kimliği.
  • ITEM_ID: Drive öğesinin kimliği.
  • TITLE: Drive öğesinin başlığı.

Bu yanıttaki Action nesnesinin, genel DriveActivity ile aynı olduğu için Target içermediğini unutmayın.

Örnekte, uygulamaların tek tek işlemlere bakmadan yalnızca DriveActivity içindeki özet bilgileri nasıl kullanabileceği de gösterilmektedir. Yanıt, belirli bir dosyanın bir süre boyunca iki kullanıcı tarafından düzenlendiğini gösterir.

Bir kullanıcı iki dosyayı yeni bir dizine taşıdı

Bu örnekte, dosyalar aynı anda aynı kaynaktan aynı hedefe taşındığı için ConsolidationStrategy, iki ilgili Move işlemini gruplandırmıştır.

"activities":[{
  "primaryActionDetail":{
    "move":{
      "addedParents":[ { ... } ]
      "removedParents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]

Bu çıkış aşağıdaki değerleri içerir:

  • ACCOUNT_ID: Kullanıcının kimliği. Daha fazla bilgi edinmek için People API ile kullanılabilir.
  • ITEM_ID_1: İlk Drive öğesinin kimliği.
  • ITEM_ID_2: İkinci Drive öğesinin kimliği.
  • TITLE_1: İlk Drive öğesinin başlığı.
  • TITLE_2: ikinci Drive öğesinin başlığı.

Bu yanıttaki Action nesnesi, genel DriveActivity ile aynı olduğu için Actor veya timestamp öğelerini içermez.