Auf dieser Seite wird beschrieben, wie Sie ein Label Field
auf eine einzelne Google Drive-Datei anwenden.
Verwenden Sie die Methode files.modifyLabels
, um einer Datei Metadaten hinzuzufügen, indem Sie ein Dateilabel festlegen. 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 (potenziell abhängigen) Änderungen werden angewendet.
Die ModifyLabelsRequest
enthält eine Instanz von LabelModification
, einer Änderung an einem Label in einer Datei. Es kann auch eine Instanz von FieldModification
enthalten, was eine Änderung am Feld eines Labels ist.
Bei Erfolg enthält der Antworttext die Labels, die durch die Anfrage hinzugefügt oder aktualisiert wurden. Sie befinden sich in einem modifiedLabels
-Objekt vom Typ Label
.
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie Sie mit dem fieldId
eines Textfelds einen Wert für diese Field
in einer Datei festlegen. Wenn ein Label Field
für eine Datei festgelegt wird, wird es auf die Datei angewendet. Sie können dann ein einzelnes Feld zurücksetzen oder alle mit dem Label verknüpften Felder entfernen. Weitere Informationen finden Sie unter Labelfeld in einer Datei zurücksetzen 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: Die
fieldId
des Felds, das geändert werden soll. Wenn Sie diefieldId
finden 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, verwenden Sie
labelModifications
ohnefieldModifications
. - Verwenden Sie zum Festlegen von Werten für Optionen von Auswahlfeldern die
Choice
-ID des Werts, die Sie erhalten, indem Sie das Labelschema in der Drive Labels API abrufen. - Nur für
Field
-Elemente, die Listen von Werten unterstützen, können mehrere Werte festgelegt werden. Andernfalls erhalten Sie eine400: Bad Request
-Fehlerantwort. - Legen Sie den richtigen Werttyp für die ausgewählte
Field
fest (z. B. Ganzzahl, Text, Nutzer usw.). Andernfalls erhalten Sie eine400: Bad Request
-Fehlerantwort. Sie können den Felddatentyp mit der Drive Labels API abrufen.