Enterprise License Manager API:開發人員指南

本文說明帳戶層級和經銷商管理員如何使用 Enterprise License Manager API 管理使用者授權指派。啟用帳戶的產品 SKU 授權並建立使用者後,請使用 Enterprise License Manager API 為帳戶使用者指派、更新、擷取及刪除授權。

在這個版本中,Enterprise License Manager API 會由帳戶和經銷商管理員使用。具有 License Management 權限的委派管理員也可以使用 Enterprise License Manager API。

注意:Enterprise License Manager API 是由 Google 客戶使用。如要瞭解 Google 第三方應用程式開發人員如何管理授權,請參閱 Google Workspace Marketplace API

Enterprise License Manager API 以網路服務的具象狀態傳輸 (RESTful) 設計方法為基礎。

管理授權

指派授權

在執行這項作業之前,客戶或經銷商已訂購 Google 產品授權,並建立使用者。如要將其中一項產品授權指派給這位使用者,請使用下列 POST HTTP 要求。請按照「授權要求」一節所述,加入 Authorization 標頭。如需產品和 SKU ID,請參閱 API 可用的產品和 SKU

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

注意:使用者可以為多項 Google 產品指派授權。但每個使用者一次只能獲得一項產品的 SKU 授權。使用 API 時,使用者的 SKU 授權可重新指派至產品中的其他 SKU 授權。

以下範例將 Google-Drive-storage-20 GB SKU 指派給主要電子郵件地址為 alex@example.com 的使用者:

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

JSON 要求主體:

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

成功的回應會傳回 200 HTTP 狀態碼。如要瞭解可能的錯誤代碼,請參閱 API 的錯誤代碼。如果成功,回應會以 JSON 資料格式傳回授權指派狀態。

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"
}

詳情請參閱 licenseAssignments 插入方法參考頁面。

將使用者的產品 SKU 重新指派給同一產品中的其他 SKU

如要將使用者的授權重新指派給相同產品中的新授權 SKU,請使用下列 PUT HTTP 要求。API 也支援修補語法。請按照「授權要求」一節所述,加入 Authorization 標頭。如需產品和 SKU ID,請參閱 API 支援的產品和 SKU

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

以下範例將目前的 Google-Drive-storage-20 GB SKU 更新為 Google-Drive-storage-50 GB。目前的授權 SKU 位於要求的 URI 中,而新的授權 SKU 位於要求的本文中:

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

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"
}

成功的回應會傳回 200 HTTP 狀態碼。如要瞭解可能的錯誤代碼,請參閱 API 的錯誤代碼。如果成功,回應會以 JSON 資料格式傳回授權指派狀態。

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"
}

詳情請參閱 licenseAssignments 的更新方法修補方法參考頁面。

擷取已指派特定產品授權的所有使用者

如要取得特定產品的所有使用者授權,請使用下列 GET HTTP 要求。按照授權要求一文的說明加入 Authorization 標頭。customerId 查詢字串是客戶的主網域名稱。maxResults 查詢字串會決定 API 回應中傳回的使用者授權項目數量:

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

如需產品和 SKU ID,請參閱 API 支援的產品和 SKU

以下範例列出 example.com 網域中所有使用者 (已指派 Google 雲端硬碟儲存空間產品授權) 的結果第一頁:

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

成功的回應會傳回 200 HTTP 狀態碼。如要瞭解可能的錯誤代碼,請參閱 API 的錯誤代碼。如果成功,回應會以 JSON 格式傳回授權清單。

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"
  },
  ...
}

詳情請參閱 licenseAssignments listForProduct 方法參考資料頁面。

擷取特定產品 SKU 指派授權的所有使用者

如要取得特定產品 SKU 授權的所有使用者清單,請使用以下 GET HTTP 要求。請按照「授權要求」一節所述,加入 Authorization 標頭。customerId 查詢字串是客戶的主網域名稱。maxResults 查詢字串會決定 API 回應中傳回的使用者項目數量:

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

如需產品和 SKU ID,請參閱 API 支援的產品和 SKU

以下範例會傳回 example.com 網域中所有使用者指派 Google-Drive-storage-200 GB SKU 授權的第一頁。回應會列出每頁兩個使用者項目:

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

成功的回應會傳回 200 HTTP 狀態碼。如需可能的錯誤代碼,請參閱 API 的「錯誤代碼」一節。如果成功,回應會傳回 JSON 格式的授權清單。

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"
    },
    ...
  }

詳情請參閱 licenseAssignments listForProductAndSku 方法參考頁面。

依產品 SKU 擷取特定使用者的授權

如要依產品 SKU 取得特定使用者的授權,請使用下列 GET HTTP 要求。請按照「授權要求」一節所述,加入 Authorization 標頭。如需產品和 SKU ID,請參閱 API 支援的產品和 SKU

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

以下示例會為 userId 為 alex@example.com 的使用者,取得 50 GB 產品 SKU:

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

如果使用者擁有此授權,則會傳回成功的回應和 200 HTTP 狀態碼。如需可能的錯誤代碼,請參閱 API 的「錯誤代碼」一節。如果成功,回應會以 JSON 格式傳回使用者的執照。

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"
}

詳情請參閱 licenseAssignments get 方法參考頁面。

刪除授權

如要取消指派使用者授權,請使用下列 DELETE HTTP 要求。請按照「授權要求」一節所述,加入 Authorization 標頭。如需產品和 SKU ID,請參閱 API 支援的產品和 SKU

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

在這個範例中,我們將從 userId 為 alex@example.com 的使用者取消指派 Google-Drive-storage-50GB 授權:

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

成功的回應會傳回 200 HTTP 狀態碼。如需可能的錯誤代碼,請參閱 API 的「錯誤代碼」一節。

詳情請參閱 LicenseAssignments 刪除方法參考資料頁面。

錯誤代碼

如果要求失敗,回應會簡短說明錯誤:

錯誤代碼 說明
400 要求無效 - 使用者電子郵件地址無效。
400 要求有誤 - SKU/產品不存在。
401 使用者沒有呼叫此 API 的憑證。
404 如果使用者沒有這項授權,回應會顯示「找不到」錯誤代碼。
412 不符合先決條件。如要進一步瞭解這項錯誤,請查看 message 欄位。例如:
  • 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 無法使用 License Manager 服務。