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 è 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'applicazione è stata installata dall'amministratore da dominio1.com, la risposta restituisce la licenza utente per utente1@dominio1.com, dove enabled
è true
, a indicare che l'amministratore di dominio1.com ha attivato l'applicazione per il dominio, mentre state
è ACTIVE
, a indicare che utente1@dominio1.com dispone di una licenza valida e deve 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 dall'amministratore solo per l'unità organizzativa (UO) di un utente specifico
Ora l'applicazione è installata solo dall'amministratore per l'OU di user2@domain1.com. L'amministratore non è più installato 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 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 di dominio1.com non ha attivato l'applicazione per il dominio, mentre state
è ACTIVE
, a indicare che l'utente dispone di una licenza valida e deve 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 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 l'ha installata singolarmente.
Richiesta userLicense.get
Questa richiesta chiama il metodo userLicense.get
per ottenere lo stato di 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
, a indicare che l'amministratore del dominio dell'utente non ha assegnato un posto per l'applicazione all'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 di 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é 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 concessione in 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}"
}