Ricevi dettagli sull'installazione e sulle licenze dell'app

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

L'applicazione non è stata ancora installata

richiesta LicenseNotification.list

Questa richiesta chiama il metodo licenseNotification.list per recuperare un elenco di notifiche di licenza 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 è stata ancora installata, la risposta a questa richiesta non include notifiche relative alle licenze.

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

L'applicazione è installata singolarmente

Un utente, [email protected], 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 di licenza 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é [email protected] ha installato l'applicazione, la risposta include una notifica di licenza. La notifica della licenza include una notifica di provisioning poiché, al momento dell'installazione dell'applicazione, è stato eseguito il provisioning di una nuova licenza per [email protected].

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

L'applicazione è installata dall'amministratore

L'amministratore di dominio1.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 della licenza di [email protected] e determinare se dispone dell'autorizzazione per utilizzare l'applicazione.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Corpo della risposta

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

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

richiesta customerLicense.get

Questa richiesta chiama il metodo customerLicense.get per ottenere lo stato della licenza di dominio1.com per determinare se hanno 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 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 una specifica unità organizzativa (UO) di un utente specifico

Ora l'applicazione è installata solo dall'amministratore per l'UO di [email protected]. Non è più installata come amministratore per tutti gli utenti dell'organizzazione.

richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato di licenza di [email protected] e determinare se dispone dell'autorizzazione per utilizzare l'applicazione.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Corpo della risposta

Poiché l'applicazione è installata solo dall'amministratore per [email protected], la risposta restituisce una licenza utente per [email protected] 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 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": "[email protected]"
}

richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato della licenza di [email protected] e determinare se dispone dell'autorizzazione per utilizzare l'applicazione.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Corpo della risposta

Poiché l'applicazione è installata solo dall'amministratore per [email protected], la risposta restituisce una licenza utente per [email protected], 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": "[email protected]"
}

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

L'applicazione è stata eliminata per tutti gli utenti dell'organizzazione. L'utente, [email protected], ha ancora accesso all'applicazione perché in precedenza aveva installata singolarmente l'applicazione.

richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato della licenza di [email protected] e determinare se dispone dell'autorizzazione per utilizzare l'applicazione.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Corpo della risposta

Poiché l'applicazione è stata eliminata per tutti gli utenti dell'organizzazione, la risposta restituisce una licenza utente per [email protected], dove enabled è false e state è UNLICENSED, il che indica che l'amministratore del dominio dell'utente non ha assegnato un'utenza per l'applicazione a questo utente.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato della licenza di [email protected] e determinare se dispone dell'autorizzazione per utilizzare l'applicazione.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Corpo della risposta

Poiché in precedenza [email protected] ha installato l'applicazione singolarmente, 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": "[email protected]",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Le notifiche relative alle licenze per tutte le azioni precedenti

richiesta LicenseNotification.list

Una richiesta al metodo licenseNotification.list recupera tutte le notifiche relative alle licenze 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 di licenza per tutte le azioni eseguite sopra.

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