Ten przewodnik zawiera przykładowe żądania wysyłane do interfejsu Google Workspace Marketplace API i odpowiadające im odpowiedzi. Pokazuje on, jak uzyskać informacje o instalacji aplikacji z Google Workspace Marketplace i ich licencjonowaniu.
Aplikacja nie została jeszcze zainstalowana
Żądanie Licensenotification.list
To żądanie wywołuje metodę licenseNotification.list
, aby pobrać listę powiadomień o licencjach 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ń dotyczących licencji.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
aplikacja jest instalowana osobno;
Użytkownik user1@domain1.com zainstalował aplikację z Google Workspace Marketplace.
Żądanie Licensenotification.list
To żądanie wywołuje metodę licenseNotification.list
i pobiera listę powiadomień o licencjach dla 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
Ponieważ użytkownik1@domena1.com zainstalował aplikację, odpowiedź zawiera 1 powiadomienie o licencjach. Powiadomienie o licencjach zawiera powiadomienie o zapewnieniu, ponieważ nowa licencja została zapewniona dla użytkownika user1@domain1.com, gdy zainstalował aplikację.
{
"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 użytkowników w organizacji.
Żądanie userLicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencjonowania użytkownika user1@domain1.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}/user1@domain1.com
Treść odpowiedzi
Ponieważ administrator zainstalował aplikację w domenie domain1.com, odpowiedź zwraca licencję użytkownika dla użytkownika user1@domain1.com, gdzie enabled
to true
, co oznacza, że administrator domeny domain1.com aktywował aplikację w tej domenie, a state
to ACTIVE
, co oznacza, że użytkownik user1@domain1.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
Ta prośba wywołuje metodę customerLicense.get
, aby uzyskać stan licencjonowania domeny domain1.com i określić, czy użytkownik 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ź zwróci 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 zainstalowana tylko przez administratora w jednostce organizacyjnej określonego użytkownika.
Aplikacja jest teraz zainstalowana tylko w jednostce organizacyjnej użytkownika user2@domain1.com. Nie jest już on instalowany przez administratora dla wszystkich użytkowników 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
Ponieważ aplikacja została zainstalowana tylko przez administratora dla użytkownika user2@domain1.com, 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 metodę userLicense.get
, aby uzyskać stan licencjonowania użytkownika user2@domain1.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}/user2@domain1.com
Treść odpowiedzi
Ponieważ aplikacja jest zainstalowana tylko przez administratora na koncie użytkownik2@domena1.com, odpowiedź 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 dla wszystkich użytkowników w organizacji.
Aplikacja została usunięta dla wszystkich użytkowników 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 metodę userLicense.get
, aby uzyskać stan licencjonowania użytkownika user2@domain1.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}/user2@domain1.com
Treść odpowiedzi
Ponieważ aplikacja została usunięta dla wszystkich użytkowników w organizacji, w odpowiedzi zwracana jest licencja użytkownika dla użytkownika użytkownik2@domena1.com, gdzie enabled
to false
, a state
to UNLICENSED
, co oznacza, że administrator domeny tego użytkownika nie przypisał temu użytkownikowi miejsca 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 licencjonowania użytkownika user1@domain1.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}/user1@domain1.com
Treść odpowiedzi
Użytkownik użytkownik1@domena1.com zainstalował wcześniej aplikację, więc nadal może z niej korzystać. Odpowiedź zwróci 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 z powyżej wymienionych działań
Żądanie Licensenotification.list
Żądanie wysłane do metody licenseNotification.list
pobiera wszystkie powiadomienia o licencjach dla aplikacji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Odpowiedź zwróci listę powiadomień dotyczących licencji dla 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}"
}