Za pomocą interfejsu Google Drive Labels API możesz zaktualizować pojedynczą etykietę, stosując zestaw żądań aktualizacji, które spowodują utworzenie nowej wersji roboczej. Możesz na przykład zaktualizować
istniejącą etykietę
Properties (podstawowy
opis etykiety) lub dodać do niej nowe
Field.
Aktualizacja etykiety działa jak aktualizacja zbiorcza, ponieważ metoda przyjmuje listę obiektów aktualizacji
Request. Aktualizacje są wprowadzane w tej samej kolejności co w żądaniu zbiorczym. Aktualizacje w aktualizacji zbiorczej są stosowane atomowo. Oznacza to, że jeśli którekolwiek żądanie w pakiecie nie powiedzie się, cała aktualizacja się nie powiedzie i żadne (potencjalnie zależne) zmiany nie zostaną zastosowane. Etykieta pozostanie bez zmian.
Jeśli aktualizacja się powiedzie, przed użyciem zmian w dowolnym elemencie Dysku Google należy opublikować utworzoną wersję roboczą.
Aktualizowanie obiektów etykiet
Etykieta zawiera wiele innych typów obiektów, które można aktualizować, np.:
- Etykieta
Properties - Obiekty
Fieldi typy pól ChoiceiPropertieswyboru
To tylko niektóre z wielu obiektów, które kontrolują wygląd i działanie etykiety.
Kategorie operacji
Operacje obsługiwane przez metodę
delta w zasobie
labels można
podzielić na te kategorie:
| Kategoria | Opis |
|---|---|
| Utwórz | Dodawanie obiektów. |
| Zaktualizuj | Aktualizowanie niektórych właściwości obiektu. |
| Włącz | Włączanie obiektów. |
| Wyłącz | Wyłączanie obiektów. |
| Usuń | Usuwanie obiektów. |
Te kategorie są używane w następnej sekcji do opisania działania poszczególnych operacji.
Żądania aktualizacji
Metoda delta działa, przyjmując co najmniej 1
obiekt Request
, z których każdy określa pojedynczy typ żądania do wykonania. Istnieje wiele różnych rodzajów żądań. Oto zestawienie typów żądań, pogrupowanych w różne kategorie.
| Obiekt żądania | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Właściwości etykiety |
|
||||||||||
| Pole |
|
||||||||||
| Wybór |
|
||||||||||
Maski pól
Wiele żądań typu "Aktualizuj" i "Wyłącz" wymaga parametru
FieldMask.
Jest to rozdzielona przecinkami lista pól, które chcesz zaktualizować, pozostawiając inne pola bez zmian. Maska jest wymagana, aby mieć pewność, że zaktualizowane zostaną tylko pola, które chcesz edytować. Musisz określić co najmniej 1 pole.
Przykład
Aby zaktualizować etykietę, użyj metody
delta w zasobie
labels.
Musisz też określić:
Parametr zapytania
useAdminAccessjest ustawiony natrue, aby używać danych logowania administratora. Zanim serwer zezwoli na dostęp, sprawdzi, czy użytkownik ma wymagane Zarządzanie etykietami klasyfikacji uprawnienia administratora.A
Requestktóry określa odpowiednie aktualizacje etykiety.Etykiety
titleza pomocąPropertiesobiektu.Co najmniej 1
Fieldobiektów.Zasób
labels, który reprezentuje etykietę. Zawiera onnameiid, czyli globalnie unikalny identyfikator etykiety.Obiekt
LabelViewjakoLABEL_VIEW_FULL, aby ustawić widok zasobu, który jest stosowany do odpowiedzi etykiet.LABEL_VIEW_FULLzwraca wszystkie możliwe pola.
Poniższy przykładowy kod pokazuje, jak użyć id etykiety, aby zaktualizować prawidłową etykietę:
Python
body = {
'useAdminAccess': True,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
body=body,
name='labels/ID'
).execute()
Node.js
var body = {
'useAdminAccess': true,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
name: 'labels/ID',
requestBody: body
}, (err, res) => {
if (err) return console.error('The API returned an error: ' + err);
console.log(res);
});
Zastąp te elementy:
- TITLE: tytuł etykiety.
- DISPLAY_NAME: wyświetlana nazwa pola.
- ID: identyfikator etykiety.
Etykieta, pole lub wybór zostaną zaktualizowane, identyfikator wersji etykiety zostanie zwiększony, a etykieta zostanie zapisana w bazie danych jako wersja robocza. Etykieta ma
State ustawiony na PUBLISHED
z
hasUnpublishedChanges
ustawionym na true, co oznacza, że istnieją zmiany w wersji roboczej, ale nie są one dostępne dla
użytkowników. Aby zmiany były widoczne dla użytkowników, zaktualizowana etykieta musi mieć stan PUBLISHED. Więcej informacji znajdziesz w artykule Cykl życia
etykiety.