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: Bu değerler, 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ı tanımlar.

  • Actor: Genellikle Actor bir son kullanıcıdır. Ancak bazen bir sistem etkinliği, yönetici kullanıcı veya kendisi gibi davrandığında ya da kimliği tanımlanamayan bir kişi tarafından gerçekleştirildiğinde Action tetiklenebilir. Actor mesajı bu durumların her birini kapsar.

  • Target: Target, bir etkinliğin nesnesidir (ör. dosya, klasör, ortak Drive veya dosya yorumu). 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 referans verebilir (ör. bir Drive'ın kök klasörü veya dosya yorumu içeren üst belge).

  • Action: Her DriveActivitykaynağı bir veya daha fazla ilgili işleme sahiptir. Action, 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çermesi bakımından etkinlik gibi bağımsızdır. Yinelenen bilgileri önlemek için Action, genel DriveActivity ile aynı olduğunda kendi Target, Actor veya zaman alanlarını doldurmaz.

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

Örnek yanıtlar

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

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

"activities":[{
  "primary_action_detail":{ "edit":{} },
  "actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "drive_item":{ "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, genel DriveActivity ile aynı olduğu için Actor, Target veya TimeStamp değerlerini içermez.

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

Birleştirme etkinleştirildiğinde ilgili işlemler tek bir grupta toplanırDriveActivity. Bu örnekte, 2 benzer işlem gruplandırılmıştır: 2 farklı kullanıcıdan gelen bir Edit işlem türü.

"activities":[{
  "primary_action_detail":{ "edit":{} },
  "actors":[
    { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
    { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "time_range":{
    "start_time":{ "seconds":"1541089823", "nanos":712000000 },
    "end_time":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "known_user":{ "person_name":"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 işlemlerin, 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'teki özet bilgileri nasıl kullanabileceği de gösterilmektedir. Yanıt, belirli bir dosyanın bir süre boyunca 2 kullanıcı tarafından düzenlendiğini gösterir.

Bir kullanıcı 2 dosyayı yeni bir dizine taşıdı:

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

"activities":[{
  "primary_action_detail":{
    "move":{
      "added_parents":[ { ... } ]
      "removed_parents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
      "target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
      "target":{ "drive_item":{ "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 işlemlerin, genel DriveActivity ile aynı oldukları için Actor veya TimeStamp içermediğini unutmayın.