В этом руководстве представлены примеры запросов и ответов от API Google Workspace Marketplace . В этом руководстве показано, как получить сведения об установке и лицензировании приложения 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}
Тело ответа
Поскольку пользователь1@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}"
}
Приложение установлено администратором
Администратор домена1.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
Тело ответа
Поскольку администратор домена1.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
, чтобы получить статус лицензирования домена 1.com и определить, есть ли у него доступ к приложению.
GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com
Тело ответа
В ответ возвращается лицензия клиента для домена1.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. Он больше не устанавливается администратором для всех в организации.
запрос 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
Тело ответа
Поскольку пользователь1@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}"
}