이 가이드에서는 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이 애플리케이션을 설치했으므로 응답에 라이선스 알림이 하나 포함됩니다. 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}"
}