Enterprise License Manager API: przewodnik dla programistów

Z tego dokumentu dowiesz się, jak administratorzy na poziomie konta i administratorzy w firmach resellerskich mogą używać interfejsu Enterprise License Manager API do zarządzania przypisaniem licencji użytkownikom. Po włączeniu licencji na kody SKU produktów na koncie i utworzeniu użytkowników użyj interfejsu API menedżera licencji dla firm, aby przypisywać, aktualizować, pobierać i usuwać licencje dla użytkowników konta.

W tej wersji interfejs Enterprise License Manager API jest używany przez administratorów kont i resellerów. Z interfejsu Enterprise License Manager API mogą też korzystać delegowani administratorzy z uprawnieniami License Management.

Uwaga: interfejs Enterprise License Manager API jest używany przez klienta Google. Informacje o tym, jak deweloperzy aplikacji innych firm zarządzają licencjami Google, znajdziesz w artykule Interfejs API Google Workspace Marketplace.

Interfejs Enterprise License Manager API jest oparty na podejściu Representational State Transfer (RESTful) do projektowania usług internetowych.

Zarządzanie licencjami

Przypisywanie licencji

Wcześniej klient lub sprzedawca zamówił licencje na usługi Google i utworzył konto użytkownika. Aby przypisać temu użytkownikowi jedną z tych licencji na usługi, wyślij to żądanie HTTP POST. Dołącz nagłówek Authorization zgodnie z opisem w sekcji Autoryzacja żądań. Identyfikatory usług i SKU znajdziesz w sekcji Usługi i SKU w interfejsie API:

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

Uwaga: użytkownik może mieć przypisane licencje na wiele różnych usług Google. Użytkownik otrzymuje jednak tylko 1 licencję na SKU na usługę naraz. Za pomocą interfejsu API można przypisać inną licencję SKU do danego produktu.

W tym przykładzie SKU Google-Drive-storage-20GB jest przypisany do użytkownika, którego główny 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 w formacie JSON:

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

Pomyślna odpowiedź zwraca 200 kod stanu HTTP. Możliwe kody błędów znajdziesz w kodeksie 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 w usłudze LicenseAssignments.

Przypisz ponownie kod SKU produktu użytkownika, podając inny kod SKU dla tego samego produktu

Aby ponownie przypisać licencję użytkownika do nowego kodu SKU w ramach tego samego produktu, użyj tego PUTżądania HTTP. Interfejs API obsługuje też składnię poprawki. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzowanie żądań. Aby sprawdzić identyfikatory produktów i kodów SKU, zapoznaj się z dostępnymi produktami i kodami SKU dostępnymi w interfejsie API:

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

W tym przykładzie obecny kod SKU Google-Drive-storage-20GB jest aktualizowany na kod SKU Google-Drive-storage-50GB. Obecny kod SKU licencji znajduje się w identyfikatorze URI żądania, a nowy kod SKU licencji – 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 w formacie 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 kodeksie 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 referencyjnych metody aktualizacji i metody patcha dotyczących operacji licenseAssignments.

Pobieranie informacji o wszystkich użytkownikach, do których przypisano licencje na konkretny produkt

Aby uzyskać wszystkie licencje użytkowników na określoną usługę, użyj tego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzowanie żądań. Ciąg zapytania customerId to nazwa domeny podstawowej klienta. Parametr ciągu zapytania maxResults określa, ile rekordów licencji użytkownika zostanie 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 usług i SKU znajdziesz w sekcji Usługi i kody SKU w interfejsie API.

W tym przykładzie widzisz pierwszą stronę wyników dla wszystkich użytkowników w domenie example.com z przypisanymi licencjami na Dysk Google:

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 artykule 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 referencyjnej metody listForProduct interfejsu licenseAssignments.

Pobieranie informacji o wszystkich użytkownikach, którym przypisano licencje na konkretny kod SKU produktu

Aby uzyskać listę wszystkich użytkowników z licencjami na określoną usługę, użyj tego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzowanie żądań. Parametr ciągu zapytania customerId to nazwa domeny podstawowej klienta. Ciąg zapytania maxResults określa, ile wpisów użytkowników jest zwracanych 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

Aby uzyskać identyfikatory produktów i kodów SKU, zapoznaj się z dostępnymi produktami i kodami SKU dostępnymi w interfejsie API.

Ten przykład zwraca pierwszą stronę ze wszystkimi użytkownikami w domenie example.com, którym przypisano licencję na kod SKU Google-Drive-storage-200GB. Odpowiedź zawiera 2 rekordy użytkowników na stronę:

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 200 kod stanu HTTP. Możliwe kody błędów znajdziesz w kodeksie błędów interfejsu API. Jeśli operacja się powiedzie, 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 referencyjnej metody listForProductAndSku interfejsu licenseAssignments.

Pobieranie licencji konkretnego użytkownika według kodu SKU produktu

Aby uzyskać licencję konkretnego użytkownika na podstawie kodu SKU produktu, użyj tego żądania HTTP GET. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzowanie żądań. Identyfikatory usług i SKU znajdziesz w sekcji Usługi i jednostki SKU w interfejsie API:

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

W tym przykładzie uzyskujemy kod SKU Dysku Google o pojemności 50 GB dla użytkownika, którego adres 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ę, odpowiedź jest pomyślna i zwracany jest kod stanu HTTP 200. Możliwe kody błędów znajdziesz w kodeksie błędów interfejsu API. Jeśli operacja się powiedzie, odpowiedź zwróci licencję 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 referencyjnej metody get dla zbioru licenseAssignments.

Usuwanie licencji

Aby cofnąć przypisanie licencji użytkownikowi, użyj tego żądania HTTP DELETE. Dodaj nagłówek Authorization zgodnie z opisem w sekcji Autoryzowanie żądań. Identyfikatory usług i SKU znajdziesz w sekcji Usługi i SKU w interfejsie API:

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

W tym przykładzie cofnięto przypisanie licencji Google-Drive-storage-50GB do użytkownika, którego adres 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 kodeksie błędów interfejsu API.

Więcej informacji znajdziesz na stronie referencyjnej metody usuwania w operacji licenseAssignments.

Kody błędów

Jeśli żądanie nie powiedzie się, odpowiedź będzie zawierać 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 lub 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 „not found”.
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.