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"
}