Na tej stronie znajdziesz informacje o tym, jak ustawić etykietę Field na jednym pliku na Dysku Google.
Aby dodać metadane do pliku przez ustawienie etykiety pliku, użyj metody
files.modifyLabels. Treść żądania zawiera instancję elementu ModifyLabelsRequest, która umożliwia modyfikowanie zbioru etykiet w pliku. Żądanie może zawierać kilka modyfikacji, które są stosowane niepodzielnie. Oznacza to, że jeśli jakiekolwiek modyfikacje są nieprawidłowe, cała aktualizacja się nie powiedzie i żadne zmiany (potencjalnie zależne) nie zostaną zastosowane.
ModifyLabelsRequest zawiera instancję
LabelModification
czyli modyfikację etykiety w pliku. Może też zawierać instancję FieldModification, która jest modyfikacją pola etykiety.
Jeśli operacja się uda, treść odpowiedzi będzie zawierać etykiety dodane lub zaktualizowane przez żądanie. Znajdują się one w obiekcie modifiedLabels typu Label.
Przykład
Poniższy przykładowy kod pokazuje, jak użyć fieldId pola tekstowego, aby ustawić wartość tego Field w pliku. Gdy etykieta Field zostanie początkowo ustawiona w pliku, zostanie zastosowana do pliku. Następnie możesz cofnąć ustawienie pojedynczego pola lub usunąć wszystkie pola powiązane z etykietą. Więcej informacji znajdziesz w artykułach Usuwanie pola etykiety z pliku i Usuwanie etykiety z pliku.
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;
}
}
Zastąp następujące elementy:
- FIELD_ID:
fieldIdpola do zmodyfikowania. Aby znaleźćfieldId, pobierz etykietę za pomocą interfejsu API etykiet w Dysku Google. - VALUE: nowa
valuetego pola. - LABEL_ID:
labelIdetykiety do zmodyfikowania. - FILE_ID:
fileIdpliku, w którym zmodyfikowano etykiety.
Uwagi
- Aby ustawić etykietę bez pól, zastosuj
labelModificationsbez obecnościfieldModifications. - Aby ustawić wartości opcji pola wyboru, użyj identyfikatora
Choicewartości, którą możesz uzyskać, pobierając schemat etykiety w interfejsie Drive Labels API. - Tylko
Field, które obsługują listy wartości, mogą mieć ustawionych wiele wartości. W przeciwnym razie otrzymasz odpowiedź z błędem400: Bad Request. - Ustaw odpowiedni typ wartości dla wybranego parametru
Field(np. liczba całkowita, tekst, użytkownik itp.). W przeciwnym razie otrzymasz odpowiedź z błędem400: Bad Request. Typ danych pola możesz pobrać za pomocą interfejsu Drive Labels API.