Fornendo richieste ed esempi di risposte dall'API Google Workspace Marketplace, questa guida mostra come ottenere i dettagli di installazione e licenza 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 alcuna notifica relativa alle licenze.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
L'applicazione viene installata singolarmente
Un utente, user1@domain1.com, ha installato individualmente 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 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é user1@domain1.com ha installato l'applicazione, la risposta include una notifica di licenza. La notifica della licenza include una notifica di provisioning poiché è stata eseguita la configurazione 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 metodouserLicense.get
per ottenere lo stato della licenza
di user1@domain1.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'amministratore di domain1.com ha installato l'applicazione, la risposta restituisce la
licenza utente per user1@domain1.com, dove enabled
è true
, a indicare
che l'amministratore di dominio per domain1.com ha attivato l'applicazione per
questo dominio e state
è ACTIVE
, a indicare che user1@domain1.com ha 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 della licenza di domain1.com per 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 cliente
per domain1.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
L'applicazione ora è installata solo dall'amministratore per l'unità organizzativa di user2@domain1.com. Non è più installata dall'amministratore per tutti gli utenti dell'organizzazione.
Richiesta userLicense.get
Questa richiesta chiama il metodouserLicense.get
per ottenere lo stato della licenza di user3@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}/user3@domain1.com
Corpo della risposta
Poiché l'applicazione è installata solo dall'amministratore per user2@domain1.com, la
risposta restituisce una licenza utente per user3@domain1.com, dove enabled
è
false
, a indicare che l'amministratore di dominio per domain1.com non ha
attivato l'applicazione per questo dominio e state
è ACTIVE
, a indicare
che l'utente ha 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 metodouserLicense.get
per ottenere lo stato della licenza
di 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 user2@domain1.com, la
risposta restituisce una licenza utente per user2@domain1.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é l'aveva installata individualmente in precedenza.
Richiesta userLicense.get
Questa richiesta chiama il metodouserLicense.get
per ottenere lo stato della licenza
di 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 user2@domain1.com in cui enabled
è false
e
state
è UNLICENSED
, il che indica 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 metodouserLicense.get
per ottenere lo stato della licenza
di user1@domain1.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 user1@domain1.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 alle licenze di 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}"
}