Google Drive Activity API'de istek gönderme

Bu kılavuzda, activity.query yöntemi kullanılarak Google Drive Activity API'de nasıl istek gönderileceği açıklanmaktadır.

Sorgu anahtarı

Etkinlik isteğinde bulunmanın 2 yolu vardır: Google Drive öğesine göre veya bir klasör hiyerarşisinin altındaki her şey için.

  • itemName: Bu anahtarın biçimi "items/ITEM_ID" şeklindedir. Bu genellikle Drive'daki bir dosyadır. Bu anahtar için bir klasör belirtirseniz klasörle ilgili etkinlikler (ör. oluşturulduğu veya yeniden adlandırıldığı zaman) gösterilir.

  • ancestorName: Bu anahtarın biçimi "items/ITEM_ID" şeklindedir ve yanıt, bu klasörün altındaki alt ağaçtaki tüm öğelerle ilgili etkinliği içerir.

Anahtar ayarlanmadığında varsayılan olarak "items/root" ancestorName kullanılır ve Drive'ınızdaki tüm öğelerin etkinliği gösterilir.

Sayfalara ayırma

pageSize alanı, her yanıtta döndürülecek yaklaşık etkinlik sayısını istemenize olanak tanır. Döndürülen etkinliklerin gerçek sayısı değişiklik göstereceğinden uygulamanız, yanıttaki keyfi miktarları işlemelidir.

Sayfa boyutları sınırlıdır. Uygulamanızın çok sayıda etkinliğe ihtiyacı varsa pageSize için büyük bir değer ayarlamak yerine sayfalara ayırma özelliğini kullanarak birden fazla istek gönderin. Daha açık belirtmek gerekirse, yanıtta yer alanlardan daha fazla etkinlik getirilecekse yanıtta bir nextPageToken da yer alır. Daha fazla sonuç almak için aynı isteği tekrarlayın ancak önceki yanıttaki nextPageToken değerini içeren bir pageToken alanı ekleyin.

Konsolidasyon

Action nesneleri genellikle gruplandırılır ve tek bir DriveActivity kaynağında döndürülür. Bir öğenin paylaşılan bir klasöre taşınması ve izin değişikliğinin tetiklenmesi gibi bazı Action gruplandırmaları kendiliğinden gerçekleşir.

İstekte bir ConsolidationStrategy (bazen toplama veya toplu işlem olarak da adlandırılır) de belirtebilirsiniz. Bu, ilgili Action nesnelerinin diğer gruplandırmalarını (ör. bir öğeyi düzenleyen birkaç aktör veya birden fazla dosyayı yeni bir Drive klasörüne taşıyan bir Actor) sağlar.

Bireysel Action'lerin bir Actor ve bir Target'i olsa da gruplandırmadan sonra ortaya çıkan DriveActivity'lerin birden fazla aktörü ve birden fazla hedefi olabilir. Ancak gruplandırmadan sonra bile, istenen birleştirme stratejisine bağlı olarak DriveActivity kaynağındaki tüm işlemleri temsil eden veya en önemlisi olan her zaman bir "birincil" işlem vardır.

Sonuç olarak, birleştirme etkinleştirilmiş olsun veya olmasın, birçok istemcinin yalnızca bir DriveActivity kaynağının üst düzey içeriklerini (ör. primaryActionDetail içindeki toplu aktörler ve hedefler) görüntülemesi ve yanıttaki ayrıntılı işlemleri yok sayması yeterli olabilir.

Filtreler

activity.query isteğinde bir filter dizesi oluşturarak DriveActivity kaynağında döndürülebilecek işlemleri kısıtlayabilirsiniz. Desteklenen 2 alan vardır: time ve detail.action_detail_case.

Zamana göre filtrele

İşlemleri zaman aralığına göre kısıtlamak için tarih değerlerinde sayısal operatörlerle birlikte time alan adını isteğe bağlı bir "VE" ile birleştirerek belirtin. 1 Ocak 1970'den itibaren geçen milisaniyeleri veya RFC 3339 biçimini kullanın. Örneğin:

  • time > 1452409200000 AND time <= 1492812924310
  • time >= "2016-01-10T01:02:03-05:00"

Türe göre filtrelenir

İşlem türüne göre kısıtlama yapmak için detail.action_detail_case alan adını "has" operatörüyle (:) uygulayın. Tek bir değer veya izin verilen işlem türlerinin parantez içine alınmış ve boşlukla ayrılmış bir listesini kullanın. İşlem türlerinin listesini görmek için ActionDetail nesnelerini inceleyin.

Bir işlem türünü yanıttan hariç tutmak için filtre dizesinin başına kısa çizgi (-) ekleyin.

Aşağıda bazı işlem türü örnekleri verilmiştir:

  • detail.action_detail_case:RENAME
  • detail.action_detail_case:(CREATE RESTORE)
  • -detail.action_detail_case:MOVE

Kombinasyonlar

Bu filtreleme koşulları tek bir filter dizesi içinde birleştirilebilir. Örneğin:

  • detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000

Örnek istekler

Bir Drive öğesi için en son 10 etkinliği isteyebilirsiniz:

{
  "itemName": "items/ITEM_ID",
  "pageSize": 10
}

Bir üst klasörün altındaki her Drive öğesi için birleştirilmiş etkinlikler isteğinde bulunun:

{
  "ancestorName": "items/ITEM_ID",
  "consolidationStrategy": {
    "legacy": {}
  }
}

Bir Drive öğesinde tüm MOVE ve RENAME işlemlerini isteme:

{
  "itemName": "items/ITEM_ID",
  "filter": "detail.action_detail_case:(MOVE RENAME)"
}

1 Ocak 2018 EST'den sonraki tüm etkinlikleri isteyebilirsiniz:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-01-01T00:00:00-05:00\""
}

Haziran 2017 UTC'de EDIT işlemleri dışındaki tüm etkinlikleri isteyin:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}