取得應用程式安裝與授權詳細資料

本文提供 Google Workspace Marketplace API 的要求和回應範例,說明如何取得 Google Workspace Marketplace 應用程式的安裝和授權詳細資料。

應用程式是由系統管理員安裝

cymbalgroup.com 的管理員已為機構中的所有使用者安裝這個應用程式。

userLicense.get 要求

這項要求會呼叫 userLicense.get 方法,取得 user1@cymbalgroup.com 的授權狀態,判斷該使用者是否有權使用應用程式。

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/APPLICATION_ID/user1@cymbalgroup.com

回應主體

由於 cymbalgroup.com 已安裝應用程式,回應會為 user1@cymbalgroup.com 傳回 userLicense 資源。userLicense 資源的 enabled 欄位會設為 true,表示 cymbalgroup.com 的網域管理員已為這個網域啟用應用程式,而 state 欄位會設為 ACTIVE,表示 user1@cymbalgroup.com 擁有有效授權,應可使用應用程式。

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "user1@cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user1@cymbalgroup.com"
}

customerLicense.get 要求

這項要求會呼叫 customerLicense.get 方法,取得 cymbalgroup.com 的授權狀態,判斷他們是否有權存取應用程式。

GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/APPLICATION_ID/cymbalgroup.com

回應主體

回應會傳回 cymbalgroup.com 的 customerLicense 資源,其中 state 欄位設為 ACTIVE,表示客戶擁有有效授權。

{
  "kind": "appsmarket#customerLicense",
  "id": "CUSTOMER_LICENSE_ID",
  "applicationId": "APPLICATION_ID",
  "customerId": "cymbalgroup.com",
  "state": "ACTIVE",
  "editions": [
    {
      "editionId": "default_edition",
      "seatCount": -1
    }
  ]
}

應用程式僅由管理員為特定使用者的機構單位安裝

現在只有管理員能為使用者 2@cymbalgroup.com 的機構單位 (OU) 安裝應用程式。管理員無法再為機構中的所有使用者安裝。

userLicense.get 要求

這項要求會呼叫 userLicense.get 方法,取得 user3@cymbalgroup.com 的授權狀態,判斷該使用者是否有權使用應用程式。

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/APPLICATION_ID/user3@cymbalgroup.com

回應主體

由於應用程式僅由管理員為 user2@cymbalgroup.com 安裝,因此回應會為 user3@cymbalgroup.com 傳回 userLicense 資源,其中 enabled 欄位設為 false,表示 cymbalgroup.com 的網域管理員尚未為這個網域啟用應用程式,而 state 欄位設為 ACTIVE,表示使用者擁有有效授權,應允許使用應用程式。

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user3@cymbalgroup.com"
}

userLicense.get 要求

這項要求會呼叫 userLicense.get 方法,取得 user2@cymbalgroup.com 的授權狀態,判斷該使用者是否有權使用應用程式。

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/APPLICATION_ID/user2@cymbalgroup.com

回應主體

由於應用程式僅由管理員為 user2@cymbalgroup.com 安裝,因此回應會為 user2@cymbalgroup.com 傳回 userLicense 資源,且 enabled 欄位設為 truestate 欄位設為 ACTIVE

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user2@cymbalgroup.com"
}

系統會為機構中的所有使用者刪除應用程式

即使機構中的所有人都刪除了應用程式,user1@cymbalgroup.com 仍可存取,因為他們先前個別安裝了應用程式。

userLicense.get 要求

這項要求會呼叫 userLicense.get 方法,取得 user2@cymbalgroup.com 的授權狀態,判斷該使用者是否有權使用應用程式。

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/APPLICATION_ID/user2@cymbalgroup.com

回應主體

由於應用程式已為機構中的所有使用者刪除,因此回應會為 user2@cymbalgroup.com 傳回 userLicense 資源,其中 enabled 欄位設為 falsestate 欄位設為 UNLICENSED,表示使用者網域的管理員未將應用程式的席位指派給這位使用者。

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user2@cymbalgroup.com"
}

userLicense.get 要求

這項要求會呼叫 userLicense.get 方法,取得 user1@cymbalgroup.com 的授權狀態,判斷該使用者是否有權使用應用程式。

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/APPLICATION_ID/user1@cymbalgroup.com

回應主體

由於 user1@cymbalgroup.com 先前已個別安裝應用程式,因此仍有權使用。回應會傳回 userLicense 資源,其中 enabled 欄位設為 truestate 欄位設為 ACTIVE

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "user1@cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user1@cymbalgroup.com"
}