W tym przewodniku znajdziesz przykładowe żądania wysyłane z interfejsu Google Workspace Marketplace API i odpowiedzi na nie, z tego przewodnika dowiesz się, jak uzyskać informacje o instalowaniu i licencjonowaniu aplikacji z Google Workspace Marketplace.
Aplikacja nie została jeszcze zainstalowana
Żądanie licencji NotificationNotification.list
To żądanie wywołuje metodę licenseNotification.list
, aby pobrać listę powiadomień dotyczących określonych aplikacji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Ponieważ aplikacja nie została jeszcze zainstalowana, odpowiedź na to żądanie nie zawiera żadnych powiadomień o licencjach.
{
"kind": "appsmarket#licenseNotificationList",
"nextPageToken": ""
}
Aplikacja jest instalowana indywidualnie
Użytkownik, użytkownik1@domena1.com, osobno zainstalował aplikację z Google Workspace Marketplace.
Żądanie licencji NotificationNotification.list
To żądanie wywołuje metodę licenseNotification.list
i pobiera listę powiadomień dotyczących licencji na aplikację zainstalowaną 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ż podczas instalowania aplikacji dla użytkownika użytkownik1@domena1.com została udostępniona nowa licencja.
{
"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 domena1.com zainstalował aplikację dla wszystkich 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 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ż aplikacja domena1.com ma zainstalowaną aplikację, odpowiedź zwraca licencję użytkownika dla użytkownika 1@domena1.com, gdzie enabled
to true
, co oznacza, że administrator domeny domena1.com aktywował aplikację dla tej domeny, 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"
}
żądanie dotyczące licencjiKlienta.get
To żądanie wywołuje metodę customerLicense.get
, aby uzyskać stan licencji domena1.com. Dzięki temu można sprawdzić, czy mają 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 domeny 1.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 tylko przez administratora w określonej jednostce organizacyjnej danego użytkownika
Aplikacja jest teraz zainstalowana tylko dla administratora jednostki organizacyjnej użytkownik2@domena1.com. Nie jest już zainstalowany dla wszystkich w organizacji.
Żądanie userlicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownika3@domena1.com i określić, czy ma 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 jest zainstalowana tylko dla administratora w domenie użytkownik2@domena1.com, w odpowiedzi wyświetlana jest licencja użytkownika dla konta użytkownik3@domena1.com, gdzie enabled
to false
, co oznacza, że administrator domeny 1.com nie aktywował aplikacji, a state
to ACTIVE
, co oznacza, że użytkownik ma ważną licencję i może korzystać 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żytkownika2@domena1.com. Dzięki temu można sprawdzić, czy użytkownik ma 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 w domenie użytkownik2@domena1.com, w odpowiedzi wyświetla się licencja użytkownika dla konta 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 osób w organizacji
Aplikacja została usunięta dla wszystkich osób w organizacji. Użytkownik użytkownik1@domena1.com nadal ma dostęp do aplikacji, ponieważ wcześniej zainstalował ją osobno.
Żądanie userlicense.get
To żądanie wywołuje metodę userLicense.get
, aby uzyskać stan licencji użytkownika2@domena1.com. Dzięki temu można sprawdzić, czy użytkownik ma 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 osób w organizacji, odpowiedź będzie zwracać licencję użytkownika na użytkownik2@domena1.com, gdzie enabled
to false
, a state
to UNLICENSED
. Oznacza to, że administrator domeny tego użytkownika nie przypisał miejsca do korzystania z aplikacji temu użytkownikowi.
{
"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 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ż użytkownik1@domena1.com miał wcześniej zainstalowaną aplikację, nadal ma uprawnienia do korzystania z niej. 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 licencji dotyczące wszystkich powyższych działań
Żądanie licencji NotificationNotification.list
Żądanie wysyłane do metody licenseNotification.list
pobiera wszystkie powiadomienia o licencji.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
Treść odpowiedzi
Odpowiedź zawiera listę powiadomień dotyczących licencji dla wszystkich działań wymienionych 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}"
}