Dosyada etiket alanı ayarlama

Bu sayfada, tek bir Google Drive dosyasına nasıl etiket Field atanacağı açıklanmaktadır.

Dosya etiketi ayarlayarak dosyaya meta veri eklemek için files.modifyLabels yöntemini kullanın. Bir dosyadaki etiketler kümesini değiştirmek için istek metni, ModifyLabelsRequest öğesinin bir örneğini içerir. İstek, atomik olarak uygulanan çeşitli değişiklikler içerebilir. Yani, değişikliklerden herhangi biri geçerli değilse güncellemenin tamamı başarısız olur ve (birbirine bağlı olabilecek) değişikliklerin hiçbiri uygulanmaz.

ModifyLabelsRequest, bir dosyadaki etikette yapılan değişiklik olan LabelModification örneği içeriyor. Ayrıca, bir etiketin alanında yapılan değişikliği gösteren bir FieldModification örneği de içerebilir.

Başarılı olursa yanıt gövdesi, istek tarafından eklenen veya güncellenen etiketleri içerir. Bunlar, Label türünde bir modifiedLabels nesnesi içinde bulunur.

Örnek

Aşağıdaki kod örneğinde, bir metin alanının fieldId kullanılarak bir dosyadaki Field için nasıl değer ayarlanacağı gösterilmektedir. Bir dosyaya ilk kez etiket Field uygulandığında bu etiket dosyaya uygulanır. Ardından tek bir alanın ayarını kaldırabilir veya etiketle ilişkili tüm alanları kaldırabilirsiniz. Daha fazla bilgi için Dosyadaki etiket alanını kaldırma ve Dosyadan etiket kaldırma başlıklı makaleleri inceleyin.

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

ModifyLabelsRequest modifyLabelsRequest =
  new ModifyLabelsRequest()
      .setLabelModifications(
          ImmutableList.of(
              new LabelModification()
                .setLabelId("LABEL_ID")
                .setFieldModifications(ImmutableList.of(fieldModification))));

ModifyLabelsResponse modifyLabelsResponse = driveService.files().modifyLabels("FILE_ID", modifyLabelsRequest).execute();

Python

field_modification = {'fieldId':'FIELD_ID','setTextValues':['VALUE']}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute()

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const fieldModification = {
    'fieldId': 'FIELD_ID',
    'setTextValues': ['VALUE'],
  };
  const labelModification = {
    'labelId': 'LABEL_ID',
    'fieldModifications': [fieldModification],
  };
  const labelModificationRequest = {
    'labelModifications': [labelModification],
  };
  try {
    const updateResponse = await service.files.modifyLabels({
      fileId: 'FILE_ID',
      resource: labelModificationRequest,
    });
    return updateResponse;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

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

  • FIELD_ID: Değiştirilecek alanın fieldId. fieldId öğesini bulmak için Google Drive Labels API'yi kullanarak etiketi alın.
  • VALUE: Bu alan için yeni value.
  • LABEL_ID: Değiştirilecek etiketin labelId.
  • FILE_ID: Etiketlerin değiştirildiği dosyanın fileId.

Notlar

  • Alanı olmayan bir etiket ayarlamak için labelModifications öğesini fieldModifications olmadan uygulayın.
  • Seçim alanı seçeneklerinin değerlerini ayarlamak için Choice değer kimliğini kullanın. Bu kimliği, Drive Etiketleri API'sinde etiket şemasını getirerek alabilirsiniz.
  • Yalnızca değer listelerini destekleyen bir Field için birden fazla değer ayarlanabilir. Aksi takdirde 400: Bad Request hata yanıtı alırsınız.
  • Seçilen Field için uygun değer türünü (ör. tam sayı, metin, kullanıcı vb.) ayarlayın. Aksi takdirde 400: Bad Request hata yanıtı alırsınız. Alan veri türünü Drive Labels API'yi kullanarak alabilirsiniz.