Ricevi dettagli sull'installazione e sulle licenze dell'app

Fornendo richieste di esempio e risposte dell'API Google Workspace Marketplace, questa guida mostra come ottenere dettagli sull'installazione e sulle licenze delle app di Google Workspace Marketplace.

L'applicazione non è ancora stata installata

Richiesta licenseNotification.list

Questa richiesta chiama il metodo licenseNotification.list per recuperare un elenco di notifiche relative alle licenze per un'applicazione specifica.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corpo della risposta

Poiché l'applicazione non è ancora stata installata, la risposta a questa richiesta non include notifiche relative alle licenze.

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

L'applicazione viene installata singolarmente

Un utente, user1@domain1.com, ha installato singolarmente l'applicazione da Google Workspace Marketplace.

Richiesta licenseNotification.list

Questa richiesta chiama il metodo licenseNotification.list e recupera l'elenco delle notifiche relative alle licenze per l'applicazione che è stata installata dall'utente.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corpo della risposta

Poiché l'utente user1@domain1.com ha installato l'applicazione, la risposta include una notifica relativa alla licenza. La notifica relativa alla licenza include una notifica di provisioning poiché è stato eseguito il provisioning di una nuova licenza per user1@domain1.com quando ha installato l'applicazione.

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

L'applicazione è stata installata dall'amministratore

L'amministratore di domain1.com ha installato l'applicazione per tutti gli utenti dell'organizzazione.

Richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato delle licenze dell'utente user1@domain1.com e determinare se ha l'autorizzazione per utilizzare l'applicazione.

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

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

Corpo della risposta

Poiché l'amministratore del dominio ha installato l'applicazione in dominio1.com, la risposta restituisce la licenza utente per utente1@dominio1.com, dove enabled è true, a indicare che l'amministratore del dominio per dominio1.com ha attivato l'applicazione per questo dominio e state è ACTIVE, a indicare che utente1@dominio1.com ha una licenza valida e che dovrebbe essere autorizzato a utilizzare l'applicazione.

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

Richiesta customerLicense.get

Questa richiesta chiama il metodo customerLicense.get per ottenere lo stato delle licenze di domain1.com e determinare se ha accesso all'applicazione.

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

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

Corpo della risposta

La risposta restituisce la licenza del cliente per il dominio1.com, dove state è ACTIVE, a indicare che il cliente ha una licenza valida.

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

L'applicazione è installata solo dall'amministratore per l'unità organizzativa (UO) di un utente specifico

Ora l'applicazione è installata solo dall'amministratore per l'OU di user2@domain1.com. Non è più installato dall'amministratore per tutti gli utenti dell'organizzazione.

Richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per recuperare lo stato della licenza di utente3@dominio1.com e determinare se ha l'autorizzazione per utilizzare l'applicazione.

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

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

Corpo della risposta

Poiché l'applicazione è installata solo come amministratore per utente2@dominio1.com, la risposta restituisce una licenza utente per utente3@dominio1.com, dove enabled è false, a indicare che l'amministratore di dominio per dominio1.com non ha attivato l'applicazione per questo dominio e state è ACTIVE, a indicare che l'utente dispone di una licenza valida e che dovrebbe essere autorizzato a utilizzare l'applicazione.

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

Richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato delle licenze dell'utente user2@domain1.com e determinare se ha l'autorizzazione per utilizzare l'applicazione.

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

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

Corpo della risposta

Poiché l'applicazione è installata solo come amministratore per utente2@dominio1.com, la risposta restituisce una licenza utente per utente2@dominio1.com, dove 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"
}

L'applicazione viene eliminata per tutti gli utenti dell'organizzazione

L'applicazione è stata eliminata per tutti gli utenti dell'organizzazione. L'utente user1@domain1.com ha ancora accesso all'applicazione perché in precedenza la aveva installata singolarmente.

Richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato delle licenze dell'utente user2@domain1.com e determinare se ha l'autorizzazione per utilizzare l'applicazione.

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

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

Corpo della risposta

Poiché l'applicazione è stata eliminata per tutti gli utenti dell'organizzazione, la risposta restituisce una licenza utente per utente2@dominio1.com, dove enabled è false e state è UNLICENSED, a indicare che l'amministratore del dominio di questo utente non ha assegnato un posto per l'applicazione a questo utente.

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

Richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato delle licenze dell'utente user1@domain1.com e determinare se ha l'autorizzazione per utilizzare l'applicazione.

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

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

Corpo della risposta

Poiché l'utente utente1@dominio1.com ha installato l'applicazione singolarmente in precedenza, ha ancora l'autorizzazione per utilizzarla. La risposta restituisce una licenza utente in cui 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"
}

Le notifiche relative alla licenza di tutte le azioni precedenti

Richiesta licenseNotification.list

Una richiesta al metodo licenseNotification.list recupera tutte le notifiche relative alla licenza per l'applicazione.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corpo della risposta

La risposta restituisce un elenco di notifiche relative alle licenze per tutte le azioni eseguite sopra.

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