Drive Activity API veri modeli

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

Nesneler

  • DriveActivity: Bu, Drive Activity API'ye yapılan sorgular tarafından döndürülen birincil kaynaktır. Bir veya daha fazla hedefi etkileyen bir veya daha fazla işlemi gerçekleştiren bir ya da daha fazla aktörü açıklar.

  • Timestamp ve TimeRange: Bunlar sırasıyla etkinliğin gerçekleştiği tek bir zamanı veya etkinliğin belirli bir süre içinde gerçekleştiği zamanın başlangıcı ve bitişini tanımlar.

  • Actor: Genel olarak, Actor bir son kullanıcıdır. Bununla birlikte, bazen bir yönetici kullanıcı veya kendisi gibi hareket ettiğinde ya da kimliği tanımlanamayan bir kişi tarafından gerçekleştirildiğinde sistem etkinlikleri bir Action'i tetikleyebilir. Actor mesajı, bu durumların her birini içerir.

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

  • Action: Her DriveActivity kaynağının bir veya daha fazla ilgili işlemi vardır. Action, etkinlik gibi bağımsız bir öğedir. Çünkü yalnızca işlemle ilgili ayrıntılı türü ve bilgileri değil, aynı zamanda bir Actor, Target ve bir Timestamp veya TimeRange da içerir. Action, tekrarlılığı önlemek için genel DriveActivity ile aynı olduğunda kendi Target, Actor ya da zaman alanlarını doldurmaz.

  • ActionDetail: Bu, Action ile ilgili özel tür ve ayrıntılı bilgilerdir. Örneğin, Move işlemi ayrıntısının bir kaynak ve hedef konumu vardır. PermissionChange, bir dokümana kimlerin artık hangi ayrıcalıklarla erişebileceğini belirtir.

Örnek yanıtlar

Bir kullanıcı Drive'da bir dosyayı düzenledi:

Basit bir DriveActivity kaynağı, bir kullanıcının tek bir dosyayı düzenlemesi gibi yalnızca bir işlem 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 almak için People API ile birlikte kullanılabilir.
  • ITEM_ID: Drive öğesinin kimliği.
  • TITLE: Drive öğesinin başlığı.

Bu yanıttaki Action, genel DriveActivity ile aynı olduğundan Actor, Target veya TimeStamp öğelerini içermiyor.

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

Birleştirme etkinleştirildiğinde, ilgili işlemler tek bir DriveActivity altında gruplanır. Bu örnekte 2 benzer işlem gruplanmıştır: 2 farklı kullanıcıya ait 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 almak için Kişiler API ile birlikte kullanılabilir.
  • ACCOUNT_ID_2: İkinci kullanıcının kimliği.
  • ITEM_ID: Drive öğesinin kimliği.
  • TITLE: Drive öğesinin başlığı.

Genel DriveActivity ile aynı olduğundan bu yanıttaki işlemlerin Target öğesini içermediğini unutmayın.

Örnekte, uygulamaların tek tek işlemlere bakmadan DriveActivity öğesinde yalnızca özet bilgileri nasıl kullanabileceği de gösterilmektedir. Yanıtta, 2 kullanıcının belirli bir dosyayı belirli bir süre içinde düzenlediği belirtilir.

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

Bu örnekte, birleştirme stratejisi, dosyalar aynı anda aynı kaynaktan aynı hedefe taşındığından 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 almak için People API ile birlikte 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: İkinci Drive öğesinin başlığı.

Genel DriveActivity ile aynı olduklarından bu yanıttaki işlemlerin Actor veya TimeStamp öğelerini içermediğine dikkat edin.