Bu sayfada, tek bir Google Drive dosyasında etiket Field
ayarlama işlemi açıklanmaktadır.
Dosya etiketi ayarlayarak bir dosyaya meta veri eklemek için files.modifyLabels
yöntemini kullanın. İstek metni, bir dosyadaki etiket kümesini değiştirmek için ModifyLabelsRequest
öğesinin bir örneğini içerir. İstek, atomik olarak uygulanan birkaç değişiklik içerebilir. Yani, herhangi bir değişiklik geçerli değilse güncellemenin tamamı başarısız olur ve (bağlı olabilecek) değişikliklerin hiçbiri uygulanmaz.
ModifyLabelsRequest
, bir dosyanın etiketinde yapılan bir değişiklik olan LabelModification
örneği içerir. Ayrıca, bir etiketin alanında yapılan bir değişiklik olan 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ündeki bir modifiedLabels
nesnesinde bulunur.
Örnek
Aşağıdaki kod örneğinde, bir dosyada bu Field
için bir değer ayarlamak üzere metin alanının fieldId
özelliğinin nasıl kullanılacağı gösterilmektedir. Bir dosya için ilk kez bir etiket Field
ayarlandığında, 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 bir etiket alanının ayarı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
değeri.fieldId
değerini 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
değeri. - FILE_ID: Etiketlerinin değiştirildiği dosyanın
fileId
değeri.
Notlar
- Alan içermeyen bir etiket ayarlamak için
fieldModifications
olmadanlabelModifications
uygulayın. - Seçim alanı seçenekleri için değerleri ayarlamak üzere, Drive Labels API'de etiket şemasını getirerek alabileceğiniz değerin
Choice
kimliğini kullanın. - Yalnızca değer listelerini destekleyen bir
Field
için birden fazla değer ayarlanabilir. Aksi takdirde400: 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 takdirde400: Bad Request
hata yanıtı alırsınız. Alan veri türünü Drive Labels API'yi kullanarak alabilirsiniz.