Etiket güncelleme

Google Drive Etiketleri API'sini kullanarak tek bir etiketi güncelleyebilirsiniz. Bunun için, yeni bir taslak düzeltmeyle sonuçlanan bir dizi güncelleme isteği uygulamanız gerekir. Örneğin, Properties mevcut bir etiketi (temel etiket açıklaması) güncelleyebilir veya etikete yeni bir Field ekleyebilirsiniz.

Yöntem, güncelleme Request nesnelerinin listesini aldığından etiket güncellemesi toplu güncelleme olarak kabul edilir. Güncellemeleri, toplu istekte belirtilen sıraya göre yapar. Toplu güncellemedeki güncellemeler atomik olarak uygulanır. Yani, toplu işlemdeki herhangi bir istek başarısız olursa güncellemenin tamamı başarısız olur ve (potansiyel olarak bağımlı) değişikliklerin hiçbiri uygulanmaz. Etiket değiştirilmez.

Güncelleme başarılı olursa değişikliklerin herhangi bir Google Drive öğesiyle kullanılabilmesi için ortaya çıkan taslak düzeltmenin yayınlanması gerekir.

Etiket nesnelerini güncelleme

Bir etiket, güncellenebilecek birçok başka nesne türü içerir. Örneğin:

  • Properties etiketi
  • Field nesne ve alan türleri
  • Seçim Choice ve Seçim Seçeneği Properties

Bunlar, bir etiketin görünümünü ve çalışmasını kontrol eden birçok nesneden bazılarıdır.

İşletim kategorileri

labels kaynağında delta yöntemi tarafından desteklenen aşağıdaki işlemler, aşağıdaki geniş kategorilerde gruplandırılabilir:

Kategori Açıklama
OluşturNesne ekleyin.
GüncelleBir nesnenin belirli özelliklerini güncelleme
EtkinleştirNesneleri etkinleştirin.
Devre dışı bırakNesneleri devre dışı bırakın.
SilNesneleri kaldırın.

Bu kategoriler, belirli işlemlerin davranışını açıklamak için sonraki bölümde kullanılmaktadır.

Güncelleme istekleri

delta yöntemi, her biri gerçekleştirilecek tek bir istek türünü belirten bir veya daha fazla Request nesnesi alarak çalışır. Birçok farklı türde istek vardır. Farklı kategorilerde gruplandırılmış talep türleriyle ilgili dökümü aşağıda bulabilirsiniz.

İstek nesnesi
Etiket Özellikleri
Güncelle UpdateLabelPropertiesRequest
Alan
Oluştur CreateFieldRequest
Güncelle UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Etkinleştir EnableFieldRequest
Devre dışı bırak DisableFieldRequest
Sil DeleteFieldRequest
Seçim Seçeneği
Oluştur CreateSelectionChoiceRequest
Güncelle UpdateSelectionChoicePropertiesRequest
Etkinleştir EnableSelectionChoiceRequest
Devre dışı bırak DisableSelectionChoiceRequest
Sil DeleteSelectionChoiceRequest

Alan maskeleri

"Güncelle" ve "Devre dışı bırak" türündeki isteklerin çoğu için FieldMask gerekir. Bu, diğer alanları değiştirmeden güncellemek istediğiniz alanların virgülle ayrılmış listesidir. Yalnızca düzenlemek istediğiniz alanların güncellendiğinden emin olmak için maske gereklidir. En az bir alan belirtmelisiniz.

Örnek

Bir etiketi güncellemek için labels kaynağında delta yöntemini kullanın.

Ayrıca şunları da belirtmeniz gerekir:

  • Kullanıcının yönetici kimlik bilgilerini kullanmak için useAdminAccess sorgu parametresi true olarak ayarlanır. Sunucu, erişime izin vermeden önce kullanıcının gerekli Sınıflandırma Etiketlerini Yönetme yönetici ayrıcalıklarına sahip olduğunu doğrular.

  • Etiket için geçerli güncellemeleri belirten bir Request.

  • Properties nesnesi üzerinden title etiketi.

  • Bir veya daha fazla Field nesne.

  • Etiketi temsil eden bir labels kaynağı. Bir name ve bir id içerir. , etiket için genel olarak benzersiz bir tanımlayıcıdır.

  • Etiket yanıtlarına uygulanan bir kaynak görünümü ayarlamak için LabelView nesnesi olarak LABEL_VIEW_FULL. LABEL_VIEW_FULL, olası tüm alanları döndürür.

Aşağıdaki kod örneğinde, doğru etiketi güncellemek için etiketin id özelliğinin nasıl kullanılacağı gösterilmektedir:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Aşağıdakini değiştirin:

  • TITLE: Etiketin başlığı.
  • DISPLAY_NAME: Alanın görünen adı.
  • ID: Etiketin kimliği.

Etiket, alan veya seçim güncellenir, etiketin düzeltme kimliği artırılır ve etiket, veritabanında taslak etiket olarak saklanır. Etikette, PUBLISHED ile State, hasUnpublishedChanges ile true olarak ayarlanmış. Bu, taslak değişiklikler olduğu ancak kullanıcıların bu değişikliklere erişemediği anlamına gelir. Değişikliklerin kullanıcılara görünür olması için güncellenen etiket PUBLISHED olmalıdır. Daha fazla bilgi için Etiket yaşam döngüsü konusuna bakın.