Acessar detalhes de instalação do app e licenciamento

Ao fornecer exemplos de solicitações e respostas da API do Google Workspace Marketplace, este documento mostra como obter detalhes de instalação e licenciamento de apps do Google Workspace Marketplace.

O aplicativo é instalado por um administrador

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

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para receber o status de licenciamento de user1@cymbalgroup.com e determinar se ele tem permissão para usar o aplicativo.

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

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

Corpo da resposta

Como o cymbalgroup.com instalou o aplicativo, a resposta retorna o recurso userLicense para user1@cymbalgroup.com. O recurso userLicense tem o campo enabled definido como true, indicando que o administrador do domínio para cymbalgroup.com ativou o aplicativo para esse domínio, e o campo state definido como ACTIVE, indicando que user1@cymbalgroup.com tem uma licença válida e pode usar o aplicativo.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "user1@cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user1@cymbalgroup.com"
}

Solicitação customerLicense.get

Essa solicitação chama o método customerLicense.get para receber o status de licenciamento de cymbalgroup.com e determinar se eles têm acesso ao aplicativo.

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

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

Corpo da resposta

A resposta retorna o recurso customerLicense para cymbalgroup.com em que o campo state está definido como ACTIVE, indicando que o cliente tem uma licença válida.

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

O aplicativo é instalado pelo administrador apenas para a unidade organizacional de um usuário específico.

O aplicativo agora só é instalado pelo administrador na unidade organizacional (UO) de user2@cymbalgroup.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 receber o status de licenciamento de user3@cymbalgroup.com e determinar se ele tem permissão para usar o aplicativo.

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

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

Corpo da resposta

Como o aplicativo só foi instalado pelo administrador para user2@cymbalgroup.com, a resposta retorna um recurso userLicense para user3@cymbalgroup.com com o campo enabled definido como false, indicando que o administrador do domínio cymbalgroup.com não ativou o aplicativo para esse domínio, e o campo state definido como ACTIVE, indicando que o usuário tem uma licença válida e pode usar o aplicativo.

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

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para receber o status de licenciamento de user2@cymbalgroup.com e determinar se ele tem permissão para usar o aplicativo.

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

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

Corpo da resposta

Como o aplicativo só foi instalado pelo administrador para user2@cymbalgroup.com, a resposta retorna um recurso userLicense para user2@cymbalgroup.com com o campo enabled definido como true e o campo state definido como ACTIVE.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user2@cymbalgroup.com"
}

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

Mesmo que o aplicativo tenha sido excluído para todos na organização, user1@cymbalgroup.com ainda tem acesso porque o instalou individualmente.

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para receber o status de licenciamento de user2@cymbalgroup.com e determinar se ele tem permissão para usar o aplicativo.

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

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

Corpo da resposta

Como o aplicativo foi excluído para todos na organização, a resposta retorna um recurso userLicense para user2@cymbalgroup.com com o campo enabled definido como false e o campo state definido como UNLICENSED, indicando que o administrador do domínio desse usuário não atribuiu uma licença para o aplicativo a ele.

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

Solicitação userLicense.get

Essa solicitação chama o método userLicense.get para receber o status de licenciamento de user1@cymbalgroup.com e determinar se ele tem permissão para usar o aplicativo.

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

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

Corpo da resposta

Como user1@cymbalgroup.com instalou o aplicativo individualmente, ele ainda tem permissão para usá-lo. A resposta retorna um recurso userLicense com o campo enabled definido como true e o campo state definido como ACTIVE.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "user1@cymbalgroup.com",
  "applicationId": "APPLICATION_ID",
  "id": "USER_LICENSE_ID",
  "userId": "user1@cymbalgroup.com"
}