Auf dieser Seite wird beschrieben, wie Sie ein Label Field
für eine einzelne Google Drive-Datei festlegen.
Wenn Sie einer Datei Metadaten hinzufügen möchten, indem Sie ein Dateilabel festlegen, verwenden Sie die Methode files.modifyLabels
. Der Anfragetext enthält eine Instanz von ModifyLabelsRequest
, um die Labels einer Datei zu ändern. Die Anfrage kann mehrere Änderungen enthalten, die atomar angewendet werden. Wenn also Änderungen ungültig sind, schlägt das gesamte Update fehl und keine der (möglicherweise abhängigen) Änderungen wird angewendet.
ModifyLabelsRequest
enthält eine Instanz von LabelModification
, die eine Änderung an einem Label für eine Datei darstellt. Es kann auch eine Instanz von FieldModification
enthalten, die eine Änderung an einem Feld des Labels darstellt.
Bei Erfolg enthält der Antworttext die Labels, die durch die Anfrage hinzugefügt oder aktualisiert wurden. Sie sind in einem modifiedLabels
-Objekt vom Typ Label
enthalten.
Beispiel
Das folgende Codebeispiel zeigt, wie Sie die fieldId
eines Textfelds verwenden, um einen Wert für dieses Field
in einer Datei festzulegen. Wenn ein Label Field
zum ersten Mal für eine Datei festgelegt wird, wird es auf die Datei angewendet. Sie können dann ein einzelnes Feld deaktivieren oder alle mit dem Label verknüpften Felder entfernen. Weitere Informationen finden Sie unter Label-Feld für eine Datei deaktivieren und Label aus einer Datei entfernen.
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;
}
}
Ersetzen Sie Folgendes:
- FIELD_ID: Der
fieldId
des zu ändernden Felds. Wenn Sie diefieldId
suchen möchten, rufen Sie das Label mit der Google Drive Labels API ab. - VALUE: Der neue
value
für dieses Feld. - LABEL_ID: Die
labelId
des zu ändernden Labels. - FILE_ID: Die
fileId
der Datei, für die die Labels geändert werden.
Hinweise
- Wenn Sie ein Label ohne Felder festlegen möchten, wenden Sie
labelModifications
ohnefieldModifications
an. - Wenn Sie Werte für Auswahlfeldoptionen festlegen möchten, verwenden Sie die
Choice
-ID des Werts, die Sie abrufen können, indem Sie das Labelschema in der Drive Labels API abrufen. - Nur für ein
Field
, das Listen von Werten unterstützt, können mehrere Werte festgelegt werden. Andernfalls erhalten Sie eine400: Bad Request
-Fehlerantwort. - Legen Sie den richtigen Werttyp für das ausgewählte
Field
fest (z. B. „integer“, „text“ oder „user“). Andernfalls erhalten Sie eine400: Bad Request
-Fehlerantwort. Sie können den Datentyp des Felds mit der Drive Labels API abrufen.