W tym przewodniku znajdziesz przykładowe żądania i odpowiedzi z interfejsu Google Workspace Marketplace API, które pokazują, jak uzyskać szczegółowe informacje o instalacji i licencjonowaniu aplikacji z Google Workspace Marketplace.
Aplikacja nie została jeszcze zainstalowana
Żądanie licenseNotification.list
To żądanie wywołuje metodę licenseNotification.list
, aby pobrać listę powiadomień o licencjonowaniu dla konkretnej aplikacji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Aplikacja nie została jeszcze zainstalowana, więc odpowiedź na to żądanie nie zawiera żadnych powiadomień o licencjonowaniu.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
Aplikacja jest instalowana indywidualnie
Użytkownik user1@domain1.com zainstalował aplikację indywidualnie z Google Workspace Marketplace.
Żądanie licenseNotification.list
To żądanie wywołuje metodę licenseNotification.list
i pobiera listę powiadomień o licencjonowaniu aplikacji zainstalowanej przez użytkownika.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Użytkownik user1@domain1.com zainstalował aplikację, więc odpowiedź zawiera 1 powiadomienie o licencji. Powiadomienie o licencji zawiera powiadomienie o udostępnieniu, ponieważ po zainstalowaniu aplikacji dla użytkownika user1@domain1.com udostępniono nową licencję.
{
"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}"
}
Aplikacja została zainstalowana przez administratora
Administrator domeny domain1.com zainstalował aplikację dla wszystkich osób w organizacji.
Żądanie userLicense.get
To żądanie wywołuje userLicense.get
metodę, aby uzyskać stan licencji użytkownika user1@domain1.com i sprawdzić, czy ma on uprawnienia do korzystania z aplikacji.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com
Treść odpowiedzi
Ponieważ administrator domeny1.com zainstalował aplikację, odpowiedź zwraca licencję użytkownika dla użytkownika1@domena1.com, gdzie enabled
to true
, co oznacza, że administrator domeny domena1.com aktywował aplikację w tej domenie, a state
to ACTIVE
, co oznacza, że użytkownik1@domena1.com ma ważną licencję i powinien mieć możliwość korzystania z aplikacji.
{
"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"
}
Żądanie customerLicense.get
To żądanie wywołuje metodę customerLicense.get
, aby uzyskać stan licencji domeny domain1.com i sprawdzić, czy ma ona dostęp do aplikacji.
GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com
Treść odpowiedzi
Odpowiedź zwraca licencję klienta
dla domeny domain1.com, gdzie state
to ACTIVE
, co oznacza, że klient ma ważną licencję.
{
"kind": "appsmarket#customerLicense",
"id": "{CUSTOMER_LICENSE_ID}",
"applicationId": "{APPLICATION_ID}",
"customerId": "domain1.com",
"state": "ACTIVE",
"editions": [
{
"editionId": "default_edition",
"seatCount": -1
}
]
}
Aplikacja jest instalowana przez administratora tylko w jednostce organizacyjnej (OU) konkretnego użytkownika.
Aplikacja jest teraz instalowana tylko przez administratora w jednostce organizacyjnej użytkownika user2@domain1.com. Nie jest już instalowana przez administratora dla wszystkich osób w organizacji.
Żądanie userLicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownika user3@domain1.com i sprawdzić, czy ma on uprawnienia do korzystania z aplikacji.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user3@domain1.com
Treść odpowiedzi
Aplikacja jest zainstalowana tylko przez administratora dla użytkownika user2@domain1.com, więc odpowiedź zwraca licencję użytkownika dla użytkownika user3@domain1.com, gdzie enabled
to false
, co oznacza, że administrator domeny domain1.com nie aktywował aplikacji dla tej domeny, a state
to ACTIVE
, co oznacza, że użytkownik ma ważną licencję i powinien mieć możliwość korzystania z aplikacji.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "ACTIVE",
"editionId": "default_edition",
"customerId": "domain1.com",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user3@domain1.com"
}
Żądanie userLicense.get
To żądanie wywołuje userLicense.get
metodę, aby uzyskać stan licencji użytkownika user2@domain1.com i sprawdzić, czy ma on uprawnienia do korzystania z aplikacji.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com
Treść odpowiedzi
Aplikacja jest zainstalowana tylko przez administratora dla użytkownika user2@domain1.com, więc odpowiedź zwraca licencję użytkownika dla użytkownika user2@domain1.com, gdzie enabled
to true
, a state
to 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"
}
Aplikacja zostanie usunięta u wszystkich osób w organizacji.
Aplikacja została usunięta u wszystkich osób w organizacji. Użytkownik user1@domain1.com nadal ma dostęp do aplikacji, ponieważ wcześniej zainstalował ją indywidualnie.
Żądanie userLicense.get
To żądanie wywołuje userLicense.get
metodę, aby uzyskać stan licencji użytkownika user2@domain1.com i sprawdzić, czy ma on uprawnienia do korzystania z aplikacji.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com
Treść odpowiedzi
Ponieważ aplikacja została usunięta dla wszystkich użytkowników w organizacji, odpowiedź zwraca licencję użytkownika dla użytkownika user2@domain1.com, gdzie enabled
to false
, a state
to UNLICENSED
, co oznacza, że administrator domeny tego użytkownika nie przypisał mu miejsca na aplikację.
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "UNLICENSED",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user2@domain1.com"
}
Żądanie userLicense.get
To żądanie wywołuje userLicense.get
metodę, aby uzyskać stan licencji użytkownika user1@domain1.com i sprawdzić, czy ma on uprawnienia do korzystania z aplikacji.
GET /appsmarket/v2/userLicense/{applicationId}/{userId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com
Treść odpowiedzi
Użytkownik user1@domena1.com wcześniej zainstalował aplikację indywidualnie, więc nadal ma uprawnienia do jej używania. Odpowiedź zwraca licencję użytkownika, w której enabled
to true
, a state
to 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"
}
Powiadomienia o licencji ze wszystkich powyższych działań
Żądanie licenseNotification.list
Żądanie wysłane do metody licenseNotification.list
pobiera wszystkie powiadomienia dotyczące licencji aplikacji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Odpowiedź zawiera listę powiadomień o licencjach dotyczących wszystkich działań wykonanych powyżej.
{
"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}"
}