В этом документе, на примере запросов к API Google Workspace Marketplace и ответов на них, показано, как получить информацию об установке и лицензировании приложений Google Workspace Marketplace.
Приложение устанавливается администратором.
Администратор cymbalgroup.com установил приложение для всех сотрудников организации.
userLicense.get request
Этот запрос вызывает метод 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 установил приложение, в ответе возвращается ресурс userLicense для user1@cymbalgroup.com. Поле enabled ресурса userLicense установлено в 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 request
Этот запрос вызывает метод 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Ответный текст
В ответе возвращается ресурс customerLicense для cymbalgroup.com, где поле state установлено в ACTIVE , что указывает на наличие у клиента действующей лицензии.
{
"kind": "appsmarket#customerLicense",
"id": "CUSTOMER_LICENSE_ID",
"applicationId": "APPLICATION_ID",
"customerId": "cymbalgroup.com",
"state": "ACTIVE",
"editions": [
{
"editionId": "default_edition",
"seatCount": -1
}
]
}
Приложение устанавливается администратором только для конкретного подразделения организации, к которому принадлежит пользователь.
Теперь приложение устанавливается администратором только для организационного подразделения (OU) пользователя user2@cymbalgroup.com. Оно больше не устанавливается администратором для всех сотрудников организации.
userLicense.get request
Этот запрос вызывает метод 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, в ответе возвращается ресурс userLicense для пользователя user3@cymbalgroup.com, в котором поле 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 request
Этот запрос вызывает метод 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 для пользователя user2@cymbalgroup.com, у которого поле enabled установлено в true , а поле state — в 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 request
Этот запрос вызывает метод 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Ответный текст
Поскольку приложение было удалено для всех сотрудников организации, в ответе возвращается ресурс userLicense для пользователя user2@cymbalgroup.com, у которого поле enabled установлено в значение false , а поле state в значение UNLICENSED , что указывает на то, что администратор домена этого пользователя не назначил ему лицензию на использование приложения.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "UNLICENSED",
"applicationId": "APPLICATION_ID",
"id": "USER_LICENSE_ID",
"userId": "user2@cymbalgroup.com"
}
userLicense.get request
Этот запрос вызывает метод 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 установлено в true , а поле state — в 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"
}