5분 후 간단한 온라인 설문조사를 통해 Google Workspace Marketplace 문서를 개선하도록 도와주세요.

앱 설치 및 라이선스 세부정보 확인

이 가이드에서는 Google Workspace Marketplace API에 대한 요청 및 응답을 제공하여 Google Workspace Marketplace 앱 설치 및 라이선스 세부정보를 가져오는 방법을 보여줍니다.

애플리케이션이 아직 설치되지 않았습니다.

LicenseNotification.list 요청

이 요청은 licenseNotification.list 메서드를 호출하여 특정 애플리케이션의 라이선스 알림 목록을 검색합니다.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

응답 본문

애플리케이션이 아직 설치되지 않았으므로 이 요청에 대한 응답에 라이선스 알림이 포함되지 않습니다.

{
  "kind": "appsmarket#licenseNotificationList",
  "nextPageToken": ""
}

애플리케이션이 개별적으로 설치됩니다.

user1@domain1.com이라는 사용자가 Google Workspace Marketplace에서 애플리케이션을 개별적으로 설치했습니다.

LicenseNotification.list 요청

이 요청은 licenseNotification.list 메서드를 호출하고 사용자가 설치한 애플리케이션의 라이선스 알림 목록을 검색합니다.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

응답 본문

user1@domain1.com이 애플리케이션을 설치했으므로 응답에 라이선스 알림 1개가 포함됩니다. 라이선스 알림은 애플리케이션을 설치할 때 user1@domain1.com에 새 라이선스가 프로비저닝되었으므로 프로비저닝 알림을 포함합니다.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "user1@domain1.com",
      "timestamp": "1641318266998",
      "provisions": [
        {
          "kind": "appsmarket#provisionNotification",
          "editionId": "default_edition",
          "seatCount": "1"
        }
      ]
    }
  ],
  "nextPageToken": "{NEXT_PAGE_TOKEN}"
}

애플리케이션이 설치되었습니다.

domain1.com 관리자가 조직의 모든 사용자를 위해 애플리케이션을 설치했습니다.

user라이선스.get 요청

이 요청은 userLicense.get 메서드를 호출하여 user1@domain1.com의 라이선스 상태를 가져오고 애플리케이션 사용 권한이 있는지 확인합니다.

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

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

응답 본문

domain1.com에서 애플리케이션을 설치했기 때문에 응답은 user1@domain1.com의 사용자 라이선스를 반환합니다. 여기서 enabledtrue이며, 이는 도메인1.com의 도메인 관리자가 이 도메인에 대해 애플리케이션을 활성화했음을 나타내고 stateACTIVE이며, user1@domain1.com에 유효한 라이선스가 있으며 애플리케이션을 사용하도록 허용되었음을 나타냅니다.

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

customer라이선스.get 요청

이 요청은 customerLicense.get 메서드를 호출하여 domain1.com의 라이선스 상태를 확인하여 애플리케이션에 대한 액세스 권한이 있는지 확인합니다.

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

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

응답 본문

응답은 stateACTIVE인 도메인1.com의 고객 라이선스를 반환하고, 이는 고객에게 유효한 라이선스가 있음을 나타냅니다.

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

애플리케이션이 특정 사용자의 조직 단위 (OU)에만 설치됨

이제 애플리케이션은 user2@domain1.com OU의 관리자만 설치됩니다. 더 이상 관리자가 조직의 모든 사용자에게 설치되지 않습니다.

user라이선스.get 요청

이 요청은 userLicense.get 메서드를 호출하여 user3@domain1.com의 라이선스 상태를 가져오고 애플리케이션 사용 권한이 있는지 확인합니다.

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

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

응답 본문

애플리케이션이 user2@domain1.com에만 설치된 것이므로 응답은 user3@domain1.com의 사용자 라이선스를 반환합니다. 여기서 enabledfalse입니다. 이는 domain1.com의 도메인 관리자가 이 도메인에 대해 애플리케이션을 활성화하지 않았음을 나타내고, stateACTIVE이며, 사용자에게 유효한 라이선스가 있으며 애플리케이션 사용을 허용해야 함을 나타냅니다.

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

user라이선스.get 요청

이 요청은 userLicense.get 메서드를 호출하여 user2@domain1.com의 라이선스 상태를 가져오고 애플리케이션 사용 권한이 있는지 확인합니다.

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

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

응답 본문

이 애플리케이션은 user2@domain1.com의 관리자 전용이므로 user2@domain1.com의 사용자 라이선스를 반환합니다. 여기서 enabledtrue이고 stateACTIVE입니다.

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

조직의 모든 사용자에 대해 애플리케이션이 삭제됩니다.

조직의 모든 사용자에 대해 애플리케이션이 삭제되었습니다. 사용자 user1@domain1.com은 이전에 애플리케이션을 개별적으로 설치했기 때문에 애플리케이션에 계속 액세스할 수 있습니다.

user라이선스.get 요청

이 요청은 userLicense.get 메서드를 호출하여 user2@domain1.com의 라이선스 상태를 가져오고 애플리케이션 사용 권한이 있는지 확인합니다.

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

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

응답 본문

조직의 모든 사용자에 대해 애플리케이션이 삭제되었으므로 응답에서는 user2@domain1.com의 사용자 라이선스를 반환합니다. 여기서 enabledfalse이고 stateUNLICENSED입니다. 이는 이 사용자 도메인의 관리자가 애플리케이션의 라이선스를 해당 사용자에게 할당하지 않았음을 나타냅니다.

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

user라이선스.get 요청

이 요청은 userLicense.get 메서드를 호출하여 user1@domain1.com의 라이선스 상태를 가져오고 애플리케이션 사용 권한이 있는지 확인합니다.

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

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

응답 본문

user1@domain1.com은 이전에 개별적으로 애플리케이션을 설치했으므로 여전히 애플리케이션을 사용할 권한이 있습니다. 응답은 enabledtrue이고 stateACTIVE사용자 라이선스를 반환합니다.

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

위 모든 작업의 라이선스 알림

LicenseNotification.list 요청

licenseNotification.list 메서드 요청은 애플리케이션의 모든 라이선스 알림을 검색합니다.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

응답 본문

응답은 위에서 실행한 모든 작업에 대한 라이선스 알림 목록을 반환합니다.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "user1@domain1.com",
      "timestamp": "1641318266998",
      "provisions": [
        {
          "kind": "appsmarket#provisionNotification",
          "editionId": "default_edition",
          "seatCount": "1"
        }
      ]
    },
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "domain1.com",
      "timestamp": "1641318351038",
      "provisions": [
        {
          "kind": "appsmarket#provisionNotification",
          "editionId": "default_edition",
          "seatCount": "-1"
        }
      ]
    },
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "domain1.com",
      "timestamp": "1641318858349",
      "deletes": [
        {
          "kind": "appsmarket#deleteNotification",
          "editionId": "default_edition",
        }
      ]
    },
  ],
  "nextPageToken": "{NEXT_PAGE_TOKEN}"
}