Poznaj szczegóły dotyczące instalowania i licencjonowania aplikacji

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}"
}