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