App-Installations- und Lizenzierungsdetails abrufen

Anhand von Beispielanfragen an und Antworten von der Google Workspace Marketplace API wird in diesem Leitfaden gezeigt, wie Sie Details zur Installation und Lizenzierung von Google Workspace Marketplace-Apps abrufen.

Die Anwendung wurde noch nicht installiert

licenseNotification.list-Anfrage

Bei dieser Anfrage wird die Methode licenseNotification.list aufgerufen, um eine Liste der 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 Lizenzierungsbenachrichtigungen.

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

Die Anwendung wird einzeln installiert.

Ein Nutzer, user1@domain1.com, hat die Anwendung einzeln aus dem Google Workspace Marketplace installiert.

LicenseNotification.list-Anfrage

Bei dieser Anfrage wird die Methode licenseNotification.list aufgerufen und die Liste der Lizenzierungsbenachrichtigungen für die vom Nutzer installierte Anwendung abgerufen.

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 bei der Installation der Anwendung eine neue Lizenz für nutzer1@domain1.com 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

Bei dieser Anfrage wird die userLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von „user1@domain1.com“ abzurufen und festzustellen, ob er 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 auf domain1.com installiert hat, wird in der Antwort die Nutzerlizenz für nutzer1@domain1.com zurückgegeben. Dabei ist enabled = true, was bedeutet, dass der Domainadministrator für domain1.com die Anwendung für diese Domain aktiviert hat. state = ACTIVE bedeutet, dass nutzer1@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

Bei dieser Anfrage wird die customerLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von domain1.com abzurufen und so zu ermitteln, ob der Nutzer Zugriff auf die Anwendung hat.

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 = ACTIVE ist, was 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 vom Administrator für die Organisationseinheit (OE) eines bestimmten Nutzers installiert.

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

userLicense.get-Anfrage

Bei dieser Anfrage wird die userLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von „user3@domain1.com“ abzurufen und festzustellen, ob er 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}/user3@domain1.com

Antworttext

Da die Anwendung nur vom Administrator für „user2@domain1.com“ installiert wurde, gibt die Antwort eine Nutzerlizenz für „user3@domain1.com“ zurück, wobei enabled = false ist, was bedeutet, dass der Domainadministrator für „domain1.com“ die Anwendung nicht für diese Domain aktiviert hat. state = ACTIVE 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

Bei dieser Anfrage wird die userLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von „user2@domain1.com“ abzurufen und festzustellen, ob er 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 nutzer2@domain1.com vom Administrator installiert wurde, gibt die Antwort eine Nutzerlizenz für nutzer2@domain1.com zurück, wobei enabled true und state 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 einzeln installiert hat.

userLicense.get-Anfrage

Bei dieser Anfrage wird die userLicense.get-Methode aufgerufen, um den Lizenzierungsstatus von „user2@domain1.com“ abzurufen und festzustellen, ob er 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, gibt die Antwort eine Nutzerlizenz für „user2@domain1.com“ zurück, wobei enabled = false und state = UNLICENSED ist. Das bedeutet, dass der Administrator der Domain dieses Nutzers diesem Nutzer keinen Sitzplatz 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

Diese Anfrage ruft die Methode userLicense.get auf, um den Lizenzierungsstatus von nutzer1@domain1.com abzurufen und festzustellen, ob der Nutzer zur Verwendung der Anwendung berechtigt ist.

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

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

Antworttext

Da nutzer1@domain1.com die Anwendung zuvor einzeln installiert hat, ist sie weiterhin berechtigt, sie zu verwenden. Die Antwort gibt eine Nutzerlizenz zurück, wobei enabled = true und state = 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 zu allen oben genannten Aktionen

licenseNotification.list-Anfrage

Eine Anfrage an die licenseNotification.list-Methode ruft alle Lizenzierungsbenachrichtigungen für die Anwendung ab.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Antworttext

In der Antwort wird für alle oben ausgeführten Aktionen eine Liste mit Lizenzbenachrichtigungen zurückgegeben.

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