En esta guía, se muestra cómo obtener detalles de la instalación y las licencias de las apps de Google Workspace Marketplace mediante solicitudes y respuestas de ejemplo a la API de Google Workspace Marketplace.
La aplicación aún no se instaló
Solicitud licenseNotification.list
Esta solicitud llama al método licenseNotification.list
para recuperar una lista de notificaciones de licencias para una aplicación específica.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Cuerpo de la respuesta
Como la aplicación aún no se instaló, la respuesta a esta solicitud no incluye ninguna notificación de licencia.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
La aplicación se instala de forma individual.
Un usuario, user1@domain1.com, instaló la aplicación de forma individual desde Google Workspace Marketplace.
Solicitud licenseNotification.list
Esta solicitud llama al método licenseNotification.list
y recupera la lista de notificaciones de licencias de la aplicación que el usuario instaló.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Cuerpo de la respuesta
Como user1@domain1.com instaló la aplicación, la respuesta incluye una notificación de licencia. La notificación de la licencia incluye una notificación de aprovisionamiento, ya que se aprovisionó una licencia nueva para user1@domain1.com cuando instaló la aplicación.
{
"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}"
}
La aplicación la instaló el administrador
El administrador de domain1.com instaló la aplicación para todos los miembros de la organización.
Solicitud userLicense.get
Esta solicitud llama al método userLicense.get
para obtener el estado de la licencia de user1@domain1.com y determinar si tiene permiso para usar la aplicación.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com
Cuerpo de la respuesta
Como el administrador de domain1.com instaló la aplicación, la respuesta muestra la licencia del usuario para user1@domain1.com, en la que enabled
es true
, lo que indica que el administrador de dominios de domain1.com activó la aplicación para este dominio, y state
es ACTIVE
, lo que indica que user1@domain1.com tiene una licencia válida y se le debe permitir usar la aplicación.
{
"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"
}
Solicitud customerLicense.get
Esta solicitud llama al método customerLicense.get
para obtener el estado de la licencia de domain1.com y determinar si tiene acceso a la aplicación.
GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com
Cuerpo de la respuesta
La respuesta muestra la licencia del cliente para domain1.com, donde state
es ACTIVE
, lo que indica que el cliente tiene una licencia válida.
{
"kind": "appsmarket#customerLicense",
"id": "{CUSTOMER_LICENSE_ID}",
"applicationId": "{APPLICATION_ID}",
"customerId": "domain1.com",
"state": "ACTIVE",
"editions": [
{
"editionId": "default_edition",
"seatCount": -1
}
]
}
El administrador solo instala la aplicación para la unidad organizativa (UO) de un usuario específico.
La aplicación ahora solo se instala como administrador para la UO de user2@domain1.com. Ya no se instala como administrador para todos los miembros de la organización.
Solicitud userLicense.get
Esta solicitud llama al método userLicense.get
para obtener el estado de la licencia de user3@domain1.com y determinar si tiene permiso para usar la aplicación.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user3@domain1.com
Cuerpo de la respuesta
Dado que la aplicación solo está instalada por el administrador para user2@domain1.com, la respuesta muestra una licencia de usuario para user3@domain1.com, en la que enabled
es false
, lo que indica que el administrador de dominios de domain1.com no activó la aplicación para este dominio, y state
es ACTIVE
, lo que indica que el usuario tiene una licencia válida y se le debe permitir usar la aplicación.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "ACTIVE",
"editionId": "default_edition",
"customerId": "domain1.com",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user3@domain1.com"
}
Solicitud userLicense.get
Esta solicitud llama al método userLicense.get
para obtener el estado de la licencia de user2@domain1.com y determinar si tiene permiso para usar la aplicación.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com
Cuerpo de la respuesta
Como la aplicación solo está instalada por el administrador para user2@domain1.com, la respuesta muestra una licencia de usuario para user2@domain1.com, en la que enabled
es true
y state
es 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"
}
La aplicación se borra para todos los miembros de la organización.
La aplicación se borró para todos los miembros de la organización. El usuario, user1@domain1.com, aún tiene acceso a la aplicación porque la instaló individualmente antes.
Solicitud userLicense.get
Esta solicitud llama al método userLicense.get
para obtener el estado de la licencia de user2@domain1.com y determinar si tiene permiso para usar la aplicación.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com
Cuerpo de la respuesta
Como la aplicación se borró para todos los usuarios de la organización, la respuesta muestra una licencia de usuario para user2@domain1.com, en la que enabled
es false
y state
es UNLICENSED
, lo que indica que el administrador del dominio de este usuario no le asignó una licencia para la aplicación.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "UNLICENSED",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user2@domain1.com"
}
Solicitud userLicense.get
Esta solicitud llama al método userLicense.get
para obtener el estado de la licencia de user1@domain1.com y determinar si tiene permiso para usar la aplicación.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com
Cuerpo de la respuesta
Como user1@domain1.com instaló la aplicación de forma individual anteriormente, todavía tiene permiso para usarla. La respuesta muestra una licencia de usuario en la que enabled
es true
y state
es 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"
}
Las notificaciones de licencias de todas las acciones anteriores
Solicitud licenseNotification.list
Una solicitud al método licenseNotification.list
recupera todas las notificaciones de licencias de la aplicación.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Cuerpo de la respuesta
La respuesta muestra una lista de notificaciones de licencias para todas las acciones que se realizaron anteriormente.
{
"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}"
}