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