Enterprise License Manager API: przewodnik dla programistów

Ten dokument opisuje, jak administratorzy na poziomie konta i sprzedawcy mogą używać interfejsu Enterprise License Manager API do zarządzania przypisywaniem licencji użytkowników. Po włączeniu na koncie licencji na SKU usług i utworzeniu kont użytkowników możesz za pomocą interfejsu Enterprise License Manager API przypisywać, aktualizować, pobierać i usuwać licencje dla użytkowników konta.

Interfejs Enterprise License Manager API jest używany przez administratorów kont i sprzedawców. Administratorzy delegowani z uprawnieniami License Management też mogą używać interfejsu Enterprise License Manager API.

Uwaga: interfejs Enterprise License Manager API jest używany przez klienta Google. Więcej informacji o tym, jak inni deweloperzy aplikacji Google zarządzają licencjami, znajdziesz w artykule Google Workspace Marketplace API.

Interfejs Enterprise License Manager API jest oparty na metodzie REST (ang. Representational State Transfer) do usług internetowych.

Zarządzanie licencjami

Przypisz licencję

Przed tą operacją klient lub sprzedawca zamówił licencje na usługi Google i utworzył użytkownika. Aby przypisać temu użytkownikowi jedną z tych licencji na usługi, użyj następującego żądania HTTP POST. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API:

POST https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user

Uwaga: użytkownikowi można przypisać licencje na wiele różnych usług Google. Jednak użytkownik otrzymuje tylko jedną licencję SKU na usługę w danym momencie. Za pomocą tego interfejsu API można przypisać użytkownikowi licencję SKU do innej licencji SKU w ramach danej usługi.

Ten przykład przypisuje kod SKU Google-Drive-storage-20GB użytkownikowi, którego podstawowy adres e-mail to alex@example.com:

POST https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user

Treść żądania JSON:

{
  "userId" : "alex@example.com",
}

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API. Jeśli operacja się uda, odpowiedź zwróci stan przypisania licencji w formacie danych JSON.

Odpowiedź JSON

{
  "kind": "licensing#licenseAssignment",
  "etags": "etag value",
  "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com",
  "userId": "alex@example.com",
  "productId": "Google-Drive-storage",
  "skuId": "Google-Drive-storage-20GB",
  "skuName": "Google Drive storage 20 GB",
  "productName": "Google Drive storage"
}

Więcej informacji znajdziesz na stronie z informacjami o metodzie wstawiania LicenseAssignments.

Ponowne przypisanie kodu SKU produktu użytkownika na inny kod SKU w tym samym produkcie

Aby ponownie przypisać licencję użytkownika do nowego kodu SKU licencji w ramach tej samej usługi, użyj następującego żądania HTTP PUT. Interfejs API obsługuje też składnię poprawki. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API:

PUT https://www.googleapis.com/apps/licensing/v1/product/productId/sku/the current skuId/user/user's email

Ten przykład aktualizuje obecną wersję SKU Google-Drive-storage-20GB za pomocą pakietu Google-Drive-storage-50GB. Obecny kod SKU licencji znajduje się w identyfikatorze URI żądania, a nowy kod SKU znajduje się w treści żądania:

PUT https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com

Treść żądania JSON zawiera :

{
  "kind": "licensing#licenseAssignment",
  "etags": "etag value",
  "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
  "userId": "alex@example.com",
  "productId": "Google-Drive-storage",
  "skuId": "Google-Drive-storage-50GB",
  "skuName": "Google Drive storage 50 GB",
  "productName": "Google Drive storage"
}

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API. Jeśli operacja się uda, odpowiedź zwróci stan przypisania licencji w formacie danych JSON.

Odpowiedź JSON

{
  "kind": "licensing#licenseAssignment",
  "etags": "etag value",
  "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
  "userId": "alex@example.com",
  "productId": "Google-Drive-storage",
  "skuId": "Google-Drive-storage-50GB",
  "skuName": "Google Drive storage 50 GB",
  "productName": "Google Drive storage"
}

Więcej informacji znajdziesz na stronach z informacjami o metodach aktualizacji i metodzie wprowadzania poprawek LicenseAssignments.

Pobierz wszystkich użytkowników przypisanych do licencji na określoną usługę

Aby uzyskać wszystkie licencje użytkowników na daną usługę, użyj tego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Ciąg zapytania customerId to nazwa domeny podstawowej klienta. Ciąg zapytania maxResults określa, ile wpisów dotyczących licencji użytkowników ma zostać zwróconych w odpowiedzi interfejsu API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/users?customerId=primary domain name&maxResults=max results per page

Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API.

Ten przykład zawiera pierwszą stronę z wynikami dla wszystkich użytkowników w domenie example.com z przypisanymi licencjami na usługę Google-Drive-storage:

GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/users?customerId=example.com&maxResults=2

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API. Jeśli operacja się uda, odpowiedź zwróci listę licencji w formacie JSON.

Odpowiedź JSON

{
  "kind" : "licensing#licenseAssignmentList",
  "etag": "etag value",
  "nextPageToken" : "the next page token value",
  "items": [
  {
    "kind": "licensing#licenseAssignment",
    "etags": "etag value",
    "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
    "userId": "alex@example.com",
    "productId": "Google-Drive-storage",
    "skuId": "Google-Drive-storage-50GB",
    "skuName": "Google Drive storage 50 GB",
    "productName": "Google Drive storage"
  },
  {
    "kind": "licensing#licenseAssignment",
    "etags": "etag value",
    "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/keshav@example.com",
    "userId": "keshav@example.com",
    "productId": "Google-Drive-storage",
    "skuId": "Google-Drive-storage-200GB",
    "skuName": "Google Drive storage 200 GB",
    "productName": "Google Drive storage"
  },
  ...
}

Więcej informacji znajdziesz na stronie z informacjami o metodzie LicenseAssignmentslistForProduct.

Pobierz wszystkie konta użytkowników, którym przypisano licencje na określony kod SKU usługi

Aby uzyskać listę wszystkich użytkowników z licencjami na określony kod SKU usługi, użyj następującego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Ciąg zapytania customerId to nazwa domeny podstawowej klienta. Ciąg zapytania maxResults określa, ile wpisów użytkownika jest zwróconych w odpowiedzi interfejsu API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/users?customerId=primary domain name&maxResults=max results per response page

Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API.

Ten przykład pokazuje pierwszą stronę listy wszystkich użytkowników w domenie example.com, którym przypisano licencję na kod SKU Google-Drive-storage-200GB. Odpowiedź zawiera 2 wpisy użytkownika na stronie:

GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/users?customerId=example.com&maxResults=2

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API. Jeśli operacja się uda, odpowiedź zwróci listę licencji w formacie JSON.

Odpowiedź JSON

{
  "kind" : "licensing#licenseAssignmentList",
   "etag": "etag value",
   "nextPageToken" : "next page token's value",
   "items": [
    {
     "kind": "licensing#licenseAssignment",
     "etags": "etag value",
     "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/alex@example.com",
     "userId": "alex@example.com",
     "productId": "Google-Drive-storage",
     "skuId": "Google-Drive-storage-200GB",
     "skuName": "Google Drive storage 200 GB",
     "productName": "Google Drive storage"
    },
    {
     "kind": "licensing#licenseAssignment",
     "etags": "etag value",
     "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/mary@example.com",
     "userId": "mary@example.com",
     "productId": "Google-Drive-storage",
     "skuId": "Google-Drive-storage-200GB",
     "skuName": "Google Drive storage 200 GB",
     "productName": "Google Drive storage"
    },
    ...
  }

Więcej informacji znajdziesz na stronie z informacjami o metodzie LicenseAssignments listForProductAndSku.

Uzyskiwanie licencji konkretnego użytkownika według kodu SKU usługi

Aby uzyskać licencję konkretnego użytkownika według kodu SKU usługi, użyj poniższego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId

W tym przykładzie pobierany jest kod SKU 50 GB miejsca na Dysku Google dla użytkownika, którego userId to alex@example.com:

GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com

Jeśli użytkownik ma tę licencję, jest to odpowiedź pomyślna i kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API. Jeśli operacja się uda, w odpowiedzi zostanie zwrócona licencja użytkownika w formacie JSON.

Odpowiedź JSON

{
  "kind": "licensing#licenseAssignment",
  "etag": "etag value",
  "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
  "userId": "keshav@example.com",
  "productId": "Google-Drive-storage",
  "skuId": "Google-Drive-storage-50GB",
  "skuName": "Google Drive storage 50 GB",
  "productName": "Google Drive storage"
}

Więcej informacji znajdziesz na stronie z informacjami na temat metody pobierania LicenseAssignments.

Usuwanie licencji

Aby cofnąć przypisanie licencji użytkownikowi, użyj tego żądania HTTP DELETE. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Identyfikatory produktów i kodów SKU znajdziesz w sekcji Produkty i kody SKU interfejsu API:

DELETE https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId

W tym przykładzie nie przypisano licencji Google-Drive-storage-50GB do użytkownika, którego userId to alex@example.com:

DELETE https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Możliwe kody błędów znajdziesz w sekcji Kody błędów interfejsu API.

Więcej informacji znajdziesz na stronie z informacjami o metodzie usuwania LicenseAssignments.

Kody błędów

Jeśli żądanie nie powiedzie się, w odpowiedzi wyświetli się krótkie wyjaśnienie błędu:

Kod błędu Opis
400 Nieprawidłowe żądanie – adres e-mail użytkownika jest nieprawidłowy.
400 Nieprawidłowe żądanie – kod SKU/produkt nie istnieje.
401 Użytkownik, który wykonał czynność, nie ma uprawnień do wywołania tego interfejsu API.
404 Jeśli użytkownik nie ma tej licencji, odpowiedź zawiera kod błędu „nie znaleziono”.
412 Warunek wstępny nie został spełniony. Szczegółowe informacje o tym błędzie znajdziesz w polu message. Przykład:
  • Auto License switching is not allowed.
  • Auto License un-assignment is not allowed.
  • For reassign operations, the new SKU should be different from the old SKU: sku
  • Reassign operation can't be performed on different products: product1, product2
  • Reassign operation can't be performed on different users: user1, user2
  • There aren't enough available licenses for the specified product-SKU pair
  • User already has a license for the specified product and SKU
  • User already has a license of the product, but with a different SKU. To reassign a new SKU for this product, use the 'update' operation.
503 Usługa Menedżera licencji jest niedostępna.