Esta guía proporciona ejemplos de solicitudes y respuestas de la API de Google Workspace Marketplace para mostrar cómo obtener detalles sobre la instalación y las licencias de las apps de Google Workspace Marketplace.
Aún no se instaló la aplicación
Solicitud licenseNotification.list
Esta solicitud llama al método licenseNotification.list
para recuperar una lista de notificaciones de licencias de 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 licencias.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
La aplicación se instala de forma individual.
Un usuario, usuario1@dominio1.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 instaló el usuario.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Cuerpo de la respuesta
Dado que user1@domain1.com instaló la aplicación, la respuesta incluye una notificación de licencia. La notificación de licencia incluye una notificación de aprovisionamiento, ya que se aprovisionó una licencia nueva para usuario1@dominio1.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 se instaló por el administrador
El administrador de dominio1.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 usuario1@dominio1.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
Dado que el administrador de domain1.com instaló la aplicación, la respuesta devuelve la licencia de usuario para usuario1@domain1.com, donde enabled
es true
, lo que indica que el administrador del dominio domain1.com activó la aplicación para este dominio, y state
es ACTIVE
, lo que indica que usuario1@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 dominio1.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 devuelve la licencia del cliente para dominio1.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
}
]
}
La aplicación solo se instala para el administrador de la unidad organizativa (UO) de un usuario específico.
Ahora, la aplicación solo se instala para el administrador de la UO de user2@domain1.com. Ya no se instala de forma predeterminada para todos los miembros de la organización.
Solicitud userLicense.get
En esta solicitud, se 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 se instaló de forma administrativa para usuario2@dominio1.com, la respuesta devuelve una licencia de usuario para usuario3@dominio1.com en la que enabled
es false
, lo que indica que el administrador del dominio dominio1.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
En esta solicitud, se llama al método userLicense.get
para obtener el estado de la licencia de usuario2@dominio1.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
Dado que la aplicación solo se instaló para el administrador de user2@domain1.com, la respuesta devuelve 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"
}
Se borra la aplicación para todos los miembros de la organización.
La aplicación se borró para todos los miembros de la organización. El usuario usuario1@dominio1.com aún tiene acceso a la aplicación porque la instaló de forma individual anteriormente.
Solicitud userLicense.get
En esta solicitud, se llama al método userLicense.get
para obtener el estado de la licencia de usuario2@dominio1.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
Dado que la aplicación se borró para todos los miembros de la organización, la respuesta devuelve una licencia de usuario para usuario2@dominio1.com, donde enabled
es false
y state
es UNLICENSED
, lo que indica que el administrador del dominio de este usuario no le asignó un asiento 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 usuario1@dominio1.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, aún tiene permiso para usarla. La respuesta devuelve 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 devuelve una lista de notificaciones de licencias para todas las acciones realizadas 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}"
}