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, utente1@dominio1.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 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é utente1@dominio1.com 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 utente1@dominio1.com.

{
  "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 è 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 utente1@dominio1.com 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}/user1@domain1.com

Corpo della risposta

Poiché dominio1.com ha installato l'applicazione come amministratore, 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, mentre state è ACTIVE, a indicare che utente1@dominio1.com ha una licenza valida e 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 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 utente2@dominio1.com. 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 utente3@dominio1.com 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}/user3@domain1.com

Corpo della risposta

Poiché l'applicazione è installata solo dall'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 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 della licenza di utente2@dominio1.com 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}/user2@domain1.com

Corpo della risposta

Poiché l'applicazione è installata solo dall'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, utente1@dominio1.com, 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 utente2@dominio1.com 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}/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, 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": "user2@domain1.com"
}

richiesta userLicense.get

Questa richiesta chiama il metodo userLicense.get per ottenere lo stato della licenza di utente1@dominio1.com 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}/user1@domain1.com

Corpo della risposta

Poiché in precedenza utente1@dominio1.com 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": "user1@domain1.com",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user1@domain1.com"
}

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