Drive Activity API veri modeli

Bu kılavuzda, Google Drive Activity API'deki bir yanıtın ana bileşenleri açıklanır, örnekler gösterilmektedir. Bunlar nasıl yorumlanır?

Nesneler

  • DriveActivity: Bu, Drive Activity API'ye 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 noktayı veya etkinliğin belirli bir süre içinde gerçekleştiği zamanın başlangıcını ve bitişini tanımlar.

  • Actor: Actor, genellikle son kullanıcıdır. Ancak bir sistem etkinliği, bazen yönetici kullanıcı veya kendisi olarak hareket ettiğinde ya da kimliği bilinmeyen bir kişi tarafından gerçekleştirildiğinde Action'i tetikleyebilir. Actor mesajı, bu durumların her birini kapsar.

  • 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 ise Drive'ın kök klasörü veya dosya yorumu içeren üst doküman gibi bunlardan birine başvuruda bulunabilir.

  • Action: Her DriveActivity kaynağının bir veya daha fazla ilgili işlemi vardır. Action yalnızca işlemle ilgili ayrıntılı tür ve bilgilerin yanı sıra bir Actor, Target ve bir Timestamp veya TimeRange öğelerini de içermesi nedeniyle etkinlik gibi bağımsız bir öğedir. Tekrarları önlemek için Action, genel olarak DriveActivity ile aynı olduğunda kendi Target, Actor veya zaman alanlarını doldurmaz.

  • ActionDetail: Bu, bir Action ile ilgili özel tür ve ayrıntılı bilgidir. Örneğin, Move işlem ayrıntısı hem kaynak hem de hedef konuma sahipken PermissionChange artık bir dokümana kimlerin hangi ayrıcalıklarla erişebileceğini belirtir.

Örnek yanıtlar

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

Basit bir DriveActivity kaynağında tek bir işlem (ör. kullanıcının tek bir dosyayı düzenlemesi) bulunabilir.

"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ığı.

Genel DriveActivity ile aynı oldukları için bu yanıttaki Action öğesinin Actor, Target veya TimeStamp özelliklerini içermediğini unutmayın.

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

Birleştirme etkinleştirildiğinde ilgili işlemler tek bir DriveActivity altında gruplandırılır. Bu örnekte 2 benzer işlem gruplandırılmıştır: 2 farklı kullanıcıdan alınan 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 People API ile birlikte kullanılabilir.
  • ACCOUNT_ID_2: ikinci kullanıcının kimliği.
  • ITEM_ID: Drive öğesinin kimliği.
  • TITLE: Drive öğesinin başlığı.

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

Örnekte, uygulamaların ayrı ayrı işlemlere bakmadan yalnızca DriveActivity içindeki özet bilgileri nasıl kullanabileceği de gösterilmektedir. Yanıt, 2 kullanıcının belirli bir zaman aralığı boyunca belirli bir dosyayı düzenlediğini belirtir.

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

Bu örnekte, birleştirme stratejisi, dosyalar aynı kaynaktan aynı hedefe aynı anda taşındığı için ilgili 2 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: ikinci Drive öğesinin başlığı.

Genel olarak DriveActivity ile aynı oldukları için bu yanıttaki işlemlerin Actor veya TimeStamp özelliklerini içermediğini unutmayın.