Tem cinco minutos? Ajude a melhorar a documentação do Google Workspace Marketplace respondendo a uma pesquisa on-line rápida.

Acessar detalhes de instalação do app e licenciamento

Neste guia, você encontra exemplos de solicitações e respostas da API Google Workspace Marketplace. Neste guia, mostramos como receber os detalhes de instalação e licenciamento do app Google Workspace Marketplace.

O aplicativo ainda não foi instalado

Solicitação de LicenseNotification.list

Essa solicitação chama o método licenseNotification.list para recuperar uma lista de notificações de licenciamento de um aplicativo específico.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Corpo da resposta

Como o aplicativo ainda não foi instalado, a resposta a essa solicitação não inclui notificações de licenciamento.

{
  "kind": "appsmarket#licenseNotificationList",
  "nextPageToken": ""
}

O aplicativo é instalado individualmente

Um usuário, usuario1@dominio1.com, instalou individualmente o app pelo Google Workspace Marketplace.

Solicitação de LicenseNotification.list

Essa solicitação chama o método licenseNotification.list e recupera a lista de notificações de licenciamento para o aplicativo que foi instalado pelo usuário.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Corpo da resposta

Como usuario1@dominio1.com instalou o aplicativo, a resposta inclui uma notificação de licença. A notificação de licença inclui uma notificação de provisionamento, já que uma nova licença foi provisionada para usuário1@domínio1.com quando ele instalou o aplicativo.

{
  "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}"
}

O aplicativo está instalado pelo administrador

O administrador de dominio1.com instalou o aplicativo para todos na organização.

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para ver o status de licenciamento de usuario1@dominio1.com e determinar se eles têm permissão para usar o aplicativo.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Corpo da resposta

Como domínio1.com tem o administrador instalado, a resposta retorna a licença de usuário para usuário1@domínio1.com, em que enabled é true, indicando que o administrador do domínio para domínio1.com ativou o aplicativo para esse domínio, e state é ACTIVE, indicando que usuário1@domínio1.com tem uma licença válida e deve ser permitida para usar o aplicativo.

{
  "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 solicitação

Essa solicitação chama o método customerLicense.get para ver o status de licenciamento de domain1.com e determinar se ele tem acesso ao aplicativo.

GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com

Corpo da resposta

A resposta retorna a licença de cliente do domínio1.com, em que state é ACTIVE, indicando que o cliente tem uma licença válida.

{
  "kind": "appsmarket#customerLicense",
  "id": "{CUSTOMER_LICENSE_ID}",
  "applicationId": "{APPLICATION_ID}",
  "customerId": "domain1.com",
  "state": "ACTIVE",
  "editions": [
    {
      "editionId": "default_edition",
      "seatCount": -1
    }
  ]
}

O aplicativo é instalado apenas pelo administrador da unidade organizacional (UO) de um usuário específico

Agora o aplicativo é apenas instalado pelo administrador para a unidade organizacional de usuario2@dominio1.com. Ele não é mais instalado pelo administrador para todos na organização.

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para ver o status de licenciamento de user3@domain1.com e determinar se eles têm permissão para usar o aplicativo.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user3@domain1.com

Corpo da resposta

Como o aplicativo é instalado apenas pelo administrador de usuário2@domínio1.com, a resposta retorna uma licença de usuário para usuário3@domínio1.com, em que enabled é false, indicando que o administrador do domínio para domínio1.com não ativou o aplicativo para esse domínio e state é ACTIVE, indicando que o usuário tem uma licença válida e deve ter permissão para usar o aplicativo.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "domain1.com",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user3@domain1.com"
}

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para ver o status de licenciamento de usuario2@dominio1.com e determinar se eles têm permissão para usar o aplicativo.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Corpo da resposta

Como o aplicativo é instalado apenas pelo administrador de usuário2@domínio1.com, a resposta retorna uma licença de usuário para usuário2@domínio1.com, em que enabled é true e 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"
}

O app é excluído para todos na organização.

O app foi excluído para todos na organização. O usuário, usuario1@dominio1.com, ainda tem acesso ao aplicativo porque o instalou individualmente.

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para ver o status de licenciamento de usuario2@dominio1.com e determinar se eles têm permissão para usar o aplicativo.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Corpo da resposta

Como o aplicativo foi excluído para todos na organização, a resposta retorna uma licença de usuário para user2@domain1.com, em que enabled é false e state é UNLICENSED, indicando que o administrador do domínio do usuário não atribuiu um assento para o aplicativo para esse usuário.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user2@domain1.com"
}

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para ver o status de licenciamento de usuario1@dominio1.com e determinar se eles têm permissão para usar o aplicativo.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Corpo da resposta

Como usuário1@domínio1.com instalou o aplicativo individualmente, ele ainda tem permissão para usá-lo. A resposta retorna uma licença de usuário em que enabled é true e 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"
}

As notificações de licença de todas as ações acima

Solicitação de LicenseNotification.list

Uma solicitação para o método licenseNotification.list recupera todas as notificações de licenciamento do aplicativo.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Corpo da resposta

A resposta retorna uma lista de notificações de licença para todas as ações executadas acima.

{
  "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}"
}