이 가이드에서는 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의 관리자가 조직의 모든 사용자를 위해 애플리케이션을 설치했습니다.
userLicense.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의 사용자 라이선스를 반환합니다. 여기서 enabled
는 true
이며 이는 domain1.com의 도메인 관리자가 이 도메인의 애플리케이션을 활성화했음을 나타내며 state
는 ACTIVE
입니다. 이는 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"
}
customerLicense.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
응답 본문
응답은 domain1.com의 고객 라이선스를 반환합니다. 여기서 state
는 ACTIVE
이며, 이는 고객에게 유효한 라이선스가 있음을 나타냅니다.
{
"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에 대해 관리자만 설치됩니다. 더 이상 조직의 모든 사용자를 위해 관리자가 설치되지 않습니다.
userLicense.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의 사용자 라이선스를 반환합니다. 여기서 enabled
는 false
이며 이는 domain1.com의 도메인 관리자가 이 도메인의 애플리케이션을 활성화하지 않았음을 나타냅니다. state
는 ACTIVE
입니다. 이는 사용자에게 유효한 라이선스가 있고 애플리케이션 사용이 허용되어야 함을 나타냅니다.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "ACTIVE",
"editionId": "default_edition",
"customerId": "domain1.com",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user3@domain1.com"
}
userLicense.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에 대한 사용자 라이선스를 반환합니다. 여기서 enabled
는 true
이고 state
은 ACTIVE
입니다.
{
"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)는 이전에 애플리케이션을 개별적으로 설치했으므로 애플리케이션에 계속 액세스할 수 있습니다.
userLicense.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에 대한 사용자 라이선스를 반환합니다. 여기서 enabled
는 false
이고 state
은 UNLICENSED
입니다. 이는 해당 사용자 도메인 관리자가 해당 사용자에게 애플리케이션의 사용 가능 라이선스를 할당하지 않았음을 나타냅니다.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "UNLICENSED",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user2@domain1.com"
}
userLicense.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은 이전에 애플리케이션을 개별적으로 설치했으므로 계속 사용할 권한이 있습니다. 응답은 사용자 라이선스를 반환합니다. 여기서 enabled
는 true
이고 state
은 ACTIVE
입니다.
{
"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}"
}