App-Installations- und Lizenzierungsdetails abrufen

In diesem Leitfaden wird anhand von Beispielanfragen und ‑antworten der Google Workspace Marketplace API gezeigt, wie Sie Installations- und Lizenzierungsdetails von Google Workspace Marketplace-Apps abrufen.

Die Anwendung wurde noch nicht installiert

licenseNotification.list-Anfrage

Mit dieser Anfrage wird die Methode licenseNotification.list aufgerufen, um eine Liste von Lizenzierungsbenachrichtigungen für eine bestimmte Anwendung abzurufen.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Antworttext

Da die Anwendung noch nicht installiert wurde, enthält die Antwort auf diese Anfrage keine Lizenzbenachrichtigungen.

{
  "kind": "appsmarket#licenseNotificationList",
  "nextPageToken": ""
}

Die Anwendung wird einzeln installiert

Ein Nutzer, user1@domain1.com, hat die Anwendung individuell über den Google Workspace Marketplace installiert.

licenseNotification.list-Anfrage

Mit dieser Anfrage wird die Methode licenseNotification.list aufgerufen und die Liste der Lizenzierungsbenachrichtigungen für die Anwendung abgerufen, die vom Nutzer installiert wurde.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Antworttext

Da user1@domain1.com die Anwendung installiert hat, enthält die Antwort eine Lizenzbenachrichtigung. Die Lizenzbenachrichtigung enthält eine Bereitstellungsbenachrichtigung, da für user1@domain1.com beim Installieren der Anwendung eine neue Lizenz bereitgestellt wurde.

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

Die Anwendung wurde vom Administrator installiert

Der Administrator von domain1.com hat die Anwendung für alle Nutzer in der Organisation installiert.

userLicense.get-Anfrage

Mit dieser Anfrage wird die Methode userLicense.get aufgerufen, um den Lizenzierungsstatus von user1@domain1.com abzurufen und festzustellen, ob der Nutzer berechtigt ist, die Anwendung zu verwenden.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Antworttext

Da der Administrator die Anwendung für domain1.com installiert hat, wird in der Antwort die Nutzerlizenz für user1@domain1.com zurückgegeben, wobei enabled gleich true ist. Das bedeutet, dass der Domainadministrator für domain1.com die Anwendung für diese Domain aktiviert hat. state ist gleich ACTIVE, was bedeutet, dass user1@domain1.com eine gültige Lizenz hat und die Anwendung verwenden darf.

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

customerLicense.get-Anfrage

Mit dieser Anfrage wird die Methode customerLicense.get aufgerufen, um den Lizenzierungsstatus von domain1.com abzurufen und festzustellen, ob die Nutzer Zugriff auf die Anwendung haben.

GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com

Antworttext

Die Antwort gibt die Kundenlizenz für domain1.com zurück, wobei state gleich ACTIVE ist. Das bedeutet, dass der Kunde eine gültige Lizenz hat.

{
  "kind": "appsmarket#customerLicense",
  "id": "{CUSTOMER_LICENSE_ID}",
  "applicationId": "{APPLICATION_ID}",
  "customerId": "domain1.com",
  "state": "ACTIVE",
  "editions": [
    {
      "editionId": "default_edition",
      "seatCount": -1
    }
  ]
}

Die Anwendung wird nur für die Organisationseinheit (OE) eines bestimmten Nutzers vom Administrator installiert.

Die Anwendung wird jetzt nur noch für die Organisationseinheit von user2@domain1.com installiert. Sie wird nicht mehr für alle Nutzer in der Organisation vom Administrator installiert.

userLicense.get-Anfrage

Mit dieser Anfrage wird die userLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von user3@domain1.com abzurufen und festzustellen, ob der Nutzer die Berechtigung hat, die Anwendung zu verwenden.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user3@domain1.com

Antworttext

Da die Anwendung nur für user2@domain1.com vom Administrator installiert wurde, wird in der Antwort eine Nutzerlizenz für user3@domain1.com zurückgegeben, wobei enabled gleich false ist. Das bedeutet, dass der Domainadministrator für domain1.com die Anwendung für diese Domain nicht aktiviert hat. state ist gleich ACTIVE, was bedeutet, dass der Nutzer eine gültige Lizenz hat und die Anwendung verwenden darf.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "domain1.com",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user3@domain1.com"
}

userLicense.get-Anfrage

Mit dieser Anfrage wird die Methode userLicense.get aufgerufen, um den Lizenzierungsstatus von user2@domain1.com abzurufen und festzustellen, ob der Nutzer berechtigt ist, die Anwendung zu verwenden.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Antworttext

Da die Anwendung nur für user2@domain1.com vom Administrator installiert wurde, wird in der Antwort eine Nutzerlizenz für user2@domain1.com zurückgegeben, wobei enabled gleich true und state gleich ACTIVE ist.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "domain1.com",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user2@domain1.com"
}

Die Anwendung wird für alle Nutzer in der Organisation gelöscht.

Die Anwendung wurde für alle Nutzer in der Organisation gelöscht. Der Nutzer user1@domain1.com hat weiterhin Zugriff auf die Anwendung, da er sie zuvor individuell installiert hat.

userLicense.get-Anfrage

Mit dieser Anfrage wird die Methode userLicense.get aufgerufen, um den Lizenzierungsstatus von user2@domain1.com abzurufen und festzustellen, ob der Nutzer berechtigt ist, die Anwendung zu verwenden.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Antworttext

Da die Anwendung für alle Nutzer in der Organisation gelöscht wurde, wird in der Antwort eine Nutzerlizenz für user2@domain1.com zurückgegeben, wobei enabled gleich false und state gleich UNLICENSED ist. Das bedeutet, dass der Administrator der Domain dieses Nutzers diesem Nutzer keinen Arbeitsplatz für die Anwendung zugewiesen hat.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user2@domain1.com"
}

userLicense.get-Anfrage

Mit dieser Anfrage wird die Methode userLicense.get aufgerufen, um den Lizenzierungsstatus von user1@domain1.com abzurufen und festzustellen, ob der Nutzer berechtigt ist, die Anwendung zu verwenden.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Antworttext

Da user1@domain1.com die Anwendung zuvor einzeln installiert hat, hat er weiterhin die Berechtigung, sie zu verwenden. In der Antwort wird eine Nutzerlizenz zurückgegeben, wobei enabled gleich true und state gleich ACTIVE ist.

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

Die Lizenzbenachrichtigungen aus allen oben genannten Aktionen

licenseNotification.list-Anfrage

Bei einer Anfrage an die Methode licenseNotification.list werden alle Lizenzbenachrichtigungen für die Anwendung abgerufen.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Antworttext

Die Antwort enthält eine Liste der Lizenzbenachrichtigungen für alle oben ausgeführten Aktionen.

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