Aktualizowanie etykiety

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 Field i typy pól
  • Choice i Properties wyboru

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órzDodawanie obiektów.
ZaktualizujAktualizowanie niektórych właściwości obiektu.
WłączWłączanie obiektów.
WyłączWyłą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
Zaktualizuj UpdateLabelPropertiesRequest
Pole
Utwórz CreateFieldRequest
Zaktualizuj UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Włącz EnableFieldRequest
Wyłącz DisableFieldRequest
Usuń DeleteFieldRequest
Wybór
Utwórz CreateSelectionChoiceRequest
Zaktualizuj UpdateSelectionChoicePropertiesRequest
Włącz EnableSelectionChoiceRequest
Wyłącz DisableSelectionChoiceRequest
Usuń DeleteSelectionChoiceRequest

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 useAdminAccess jest ustawiony na true, 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 Request który określa odpowiednie aktualizacje etykiety.

  • Etykiety title za pomocą Properties obiektu.

  • Co najmniej 1 Field obiektów.

  • Zasób labels, który reprezentuje etykietę. Zawiera on name i id, czyli globalnie unikalny identyfikator etykiety.

  • Obiekt LabelView jako LABEL_VIEW_FULL, aby ustawić widok zasobu, który jest stosowany do odpowiedzi etykiet. LABEL_VIEW_FULL zwraca 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.