Google Drive Activity API'de istek gönderme

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

Sorgu anahtarı

2 şekilde etkinlik isteğinde bulunabilirsiniz: 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örün oluşturulma veya yeniden adlandırılması gibi etkinlikler gösterilir.

  • ancestorName: Bu anahtarın biçimi "items/ITEM_ID"dir ve yanıt, bu klasörün altındaki alt ağaçta yer alan tüm öğelerle ilgili etkinlikleri içerir.

Herhangi bir anahtar ayarlanmazsa varsayılan olarak "öğeler/kök"ün ancestorName değerini kullanır ve Drive'ınızdaki tüm öğelerin etkinliğini gösterir.

Sayfalara ayırma

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

Sayfa boyutları sınırlıdır. Uygulamanızda çok sayıda etkinlik gerekiyorsa birden fazla istekte bulunun. Bunun için pageSize için büyük bir değer ayarlamak yerine sayfalara ayırma yöntemini kullanın. Özellikle getirilmesi gereken etkinlik, yanıta dahil edilenden daha fazlaysa yanıt da bir nextPageToken içerir. Daha fazla sonuç almak için aynı isteği tekrarlayın ancak önceki yanıttan nextPageToken değerine sahip bir pageToken alanı ekleyin.

Birleştirme

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

İstekte bir ConsolidationStrategy (bazen toplama veya toplu işleme olarak da adlandırılır) belirtebilirsiniz. Bu, bir öğeyi düzenleyen birkaç kullanıcının veya bir Actor öğesinin birden fazla dosyayı yeni bir Drive klasörüne taşıması gibi ilgili Action nesnelerinden oluşan diğer gruplandırmaları etkinleştirir.

Her bir Action bir Actor ve bir Target içerirken gruplandırmadan sonra sonuç olarak elde edilen DriveActivity birden fazla oyuncuya ve birden fazla hedefe sahip olabilir. Bununla birlikte, gruplandırmadan sonra bile, istenen birleştirme stratejisine bağlı olarak her zaman DriveActivity kaynağındaki tüm işlemleri temsil eden veya en önemli olan bir "birincil" işlem vardır.

Sonuç olarak, birçok istemcinin etkin olup olmamasına bakılmaksızın, birçok istemcinin bir DriveActivity kaynağının (primaryActionDetail içindeki toplu aktörler ve hedefler gibi) yalnızca üst düzey içeriklerini görüntülemesi ve yanıttaki ayrıntılı işlemleri göz ardı etmesi yeterli olabilir.

Filtreler

activity.query isteğinde 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 time alan adını tarih değerlerindeki sayısal operatörlerle ve isteğe bağlı bir "AND" ile birleştirerek belirtin. 1 Ocak 1970'ten itibaren milisaniyeler veya RFC 3339 biçiminden itibaren 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ıtlamak için detail.action_detail_case alan adını "has" operatörü (:) ile uygulayın. Tekil bir değer veya parantez içinde boşlukla ayrılmış izin verilen işlem türlerinin listesini kullanın. İşlem türlerinin listesini bulmak 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 dizesinde 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 isteyin:

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

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

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

Bir Drive öğesiyle ilgili tüm MOVE ve RENAME işlemlerinin tümünü iste:

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

1 Ocak 2018'den (EST) itibaren tüm etkinlikleri talep et:

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

Haziran 2017 (UTC) sırasında EDIT işlemleri hariç 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"
}