W tym przewodniku znajdziesz przykładowe żądania wysyłane do interfejsu Google Workspace Marketplace API i odpowiedzi na nie. Dzięki temu dowiesz się, jak uzyskać szczegółowe informacje o instalowaniu i licencjonowaniu aplikacji z Google Workspace Marketplace.
Aplikacja nie została jeszcze zainstalowana
Żądanie licencji Notification.list
To żądanie wywołuje metodę licenseNotification.list
, aby pobrać listę powiadomień dotyczących licencji na konkretną aplikację.
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ń dotyczących licencji.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
Aplikacja jest instalowana pojedynczo
Użytkownik uzytkownik1@domena1.com zainstalował indywidualnie aplikację z Google Workspace Marketplace.
Żądanie licencji Notification.list
To żądanie wywołuje metodę licenseNotification.list
i pobiera listę powiadomień dotyczących licencji na aplikację, która została zainstalowana przez użytkownika.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Ponieważ użytkownik1@domena1.com zainstalował aplikację, odpowiedź zawiera jedno powiadomienie o licencji. Powiadomienie o licencji zawiera powiadomienie o obsłudze administracyjnej, ponieważ nowa licencja została udostępniona dla użytkownika użytkownik1@domena1.com podczas instalowania aplikacji.
{
"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 jest zainstalowana przez administratora
Administrator domeny domain1.com zainstalował aplikację dla wszystkich użytkowników w organizacji.
Żądanie userLicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownik1@domena1.com i określić, czy ma on uprawnienia do korzystania z tej 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 domeny domena1.com zainstalował aplikację, w odpowiedzi zwraca licencję użytkownika dla adresu użytkownik1@domena1.com, gdzie enabled
to true
, co wskazuje, że administrator domeny domena1.com aktywował aplikację, a wartość state
to ACTIVE
, co wskazuje, że użytkownik1@domena1.com ma ważną licencję i powinien mieć prawo do 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 domena1.com i ustalić, czy dana osoba ma 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 domena1.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 zainstalowana tylko przez administratora w jednostce organizacyjnej określonego użytkownika
Aplikacja jest teraz zainstalowana tylko przez administratora w jednostce organizacyjnej użytkownik2@domena1.com. Nie jest już zainstalowana u wszystkich w organizacji.
Żądanie userLicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownik3@domena1.com i określić, 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 użytkownik2@domena1.com, więc w odpowiedzi zwraca licencję użytkownika dla użytkownika użytkownik3@domena1.com, gdzie enabled
to false
. Oznacza to, że administrator domeny domena1.com nie aktywował aplikacji dla tej domeny, a state
to ACTIVE
, co wskazuje, że użytkownik ma ważną licencję i powinien mieć uprawnienia do 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 metodę userLicense.get
, aby uzyskać stan licencji użytkownik2@domena1.com i określić, czy ma on uprawnienia do korzystania z tej 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 użytkownik2@domena1.com, więc w odpowiedzi zwraca licencję użytkownika dla użytkownika użytkownik2@domena1.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 użytkowników w organizacji
Aplikacja została usunięta dla wszystkich osób w organizacji. Użytkownik uzytkownik1@domena1.com nadal ma dostęp do aplikacji, ponieważ wcześniej ją zainstalował.
Żądanie userLicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownik2@domena1.com i określić, czy ma on uprawnienia do korzystania z tej 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 została usunięta dla wszystkich użytkowników w organizacji, dlatego w odpowiedzi zwraca licencję użytkownika dla użytkownika użytkownik2@domena1.com, gdzie enabled
to false
, a state
to UNLICENSED
. Oznacza to, że administrator domeny tego użytkownika nie przypisał mu stanowiska dla aplikacji.
{
"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 metodę userLicense.get
, aby uzyskać stan licencji użytkownik1@domena1.com i określić, czy ma on uprawnienia do korzystania z tej 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ż użytkownik1@domena1.com wcześniej zainstalował tę aplikację samodzielnie, nadal ma uprawnienia do jej używania. Odpowiedź zwraca licencję użytkownika, gdzie
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 licencjach dotyczące wszystkich powyższych działań
Żądanie licencji Notification.list
Żądanie kierowane do metody licenseNotification.list
pobiera wszystkie powiadomienia dotyczące licencji dla aplikacji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Odpowiedź zwraca listę powiadomień dotyczących licencji dotyczących wszystkich wykonanych powyżej działań.
{
"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}"
}