Obtén información sobre la instalación de la app y las licencias

Cuando proporcionas ejemplos de solicitudes y respuestas de la API de Google Workspace Marketplace, en esta guía se muestra cómo obtener los detalles de instalación y licencia de la app de Google Workspace Marketplace.

Aún no se ha instalado la aplicación

Solicitud de LicenseNotification.list

Esta solicitud llama al método licenseNotification.list para recuperar una lista de notificaciones de licencia 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

Dado que 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, [email protected], instaló de forma individual la aplicación desde Google Workspace Marketplace.

Solicitud de LicenseNotification.list

Esta solicitud llama al método licenseNotification.list y recupera la lista de notificaciones de licencia para 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

Como [email protected] 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 [email protected] cuando se instaló la aplicación.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "[email protected]",
      "timestamp": "1641318266998",
      "provisions": [
        {
          "kind": "appsmarket#provisionNotification",
          "editionId": "default_edition",
          "seatCount": "1"
        }
      ]
    }
  ],
  "nextPageToken": "{NEXT_PAGE_TOKEN}"
}

El administrador instaló la aplicación

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 a fin de obtener el estado de la licencia de [email protected] 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}/[email protected]

Cuerpo de la respuesta

Dado que el administrador de dominio1.com instaló la aplicación, la respuesta muestra la licencia de usuario para [email protected], donde enabled es true, lo que indica que el administrador de dominio de domain1.com activó la aplicación para este dominio, y state es ACTIVE, lo que indica que [email protected] tiene una licencia válida y debería poder usar la aplicación.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "[email protected]",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Solicitud de customerLicense.get

Esta solicitud llama al método customerLicense.get para obtener el estado de la licencia de domain1.com a fin de determinar si tienen 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, en la que 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 está instalada por el administrador para la unidad organizativa (UO) de un usuario específico

Ahora la aplicación solo es instalada por el administrador para la UO de [email protected]. Ya no es un administrador instalado para todos los miembros de la organización.

Solicitud userLicense.get

Esta solicitud llama al método userLicense.get a fin de obtener el estado de la licencia de [email protected] 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}/[email protected]

Cuerpo de la respuesta

Dado que el administrador solo instaló la aplicación para [email protected], la respuesta muestra una licencia de usuario para [email protected], donde enabled es false, lo que indica que el administrador del dominio 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 debería poder 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": "[email protected]"
}

Solicitud userLicense.get

Esta solicitud llama al método userLicense.get a fin de obtener el estado de la licencia de [email protected] 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}/[email protected]

Cuerpo de la respuesta

Dado que el administrador solo instaló la aplicación para [email protected], la respuesta muestra una licencia de usuario para [email protected], 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": "[email protected]"
}

La aplicación se borrará para todos los miembros de la organización.

Se borró la solicitud para todos los miembros de la organización. El usuario, [email protected], aún tiene acceso a la aplicación porque la instaló de forma individual.

Solicitud userLicense.get

Esta solicitud llama al método userLicense.get a fin de obtener el estado de la licencia de [email protected] 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}/[email protected]

Cuerpo de la respuesta

Dado que la aplicación se borró para todos los miembros de la organización, la respuesta muestra una licencia de usuario para [email protected], 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": "[email protected]"
}

Solicitud userLicense.get

Esta solicitud llama al método userLicense.get a fin de obtener el estado de la licencia de [email protected] 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}/[email protected]

Cuerpo de la respuesta

Dado que [email protected] instaló la aplicación de forma individual, 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": "[email protected]",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Las notificaciones de licencia de todas las acciones anteriores

Solicitud de LicenseNotification.list

Una solicitud al método licenseNotification.list recupera todas las notificaciones de licencia 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 licencia para todas las acciones realizadas anteriormente.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "[email protected]",
      "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}"
}