Vous avez cinq minutes ? Aidez-nous à améliorer la documentation sur Google Workspace Marketplace en répondant à une courte enquête en ligne.

Obtenir des informations sur l'installation d'une application et les licences

Ce guide explique comment obtenir des informations sur l'installation d'applications et les licences Google Workspace Marketplace en fournissant des exemples de requêtes et de réponses à partir de l'API Google Workspace Marketplace.

L'application n'a pas encore été installée

Licence LicenseNotification.list

Cette requête appelle la méthode licenseNotification.list pour récupérer la liste des notifications de licence pour une application spécifique.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corps de la réponse

Comme l'application n'a pas encore été installée, la réponse à cette requête n'inclut aucune notification de licence.

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

L'application est installée individuellement

Un utilisateur, utilisateur1@domaine1.com, a installé l'application individuellement depuis Google Workspace Marketplace.

Licence LicenseNotification.list

Cette requête appelle la méthode licenseNotification.list et récupère la liste des notifications de licence pour l'application ayant été installée par l'utilisateur.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corps de la réponse

Étant donné que utilisateur1@domaine1.com a installé l'application, la réponse inclut une notification de licence. La notification de licence comprend une notification de provisionnement, car une nouvelle licence a été provisionnée pour utilisateur1@domaine1.com lors de l'installation de l'application.

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

L'application est installée par un administrateur

L'administrateur de domain1.com a installé l'application pour tous les membres de l'organisation.

Requête userLicense.get

Cette requête appelle la méthode userLicense.get pour obtenir l'état de la licence utilisateur1@domaine1.com et déterminer si elle est autorisée à utiliser l'application.

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

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

Corps de la réponse

L'administrateur de l'application ayant installé l'application sur domain1.com, la réponse renvoie la licence utilisateur pour utilisateur1@domaine1.com, où enabled est true, ce qui indique que l'administrateur du domaine domaine1.com a activé l'application pour ce domaine, et state est ACTIVE, indiquant que utilisateur1@domaine1.com dispose d'une licence valide et doit être autorisé à utiliser l'application.

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

Requête customerLicense.get

Cette requête appelle la méthode customerLicense.get pour obtenir l'état d'attribution de licence de domain1.com et déterminer si elle a accès à l'application.

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

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

Corps de la réponse

La réponse renvoie la licence client pour domain1.com où state est ACTIVE, indiquant que le client dispose d'une licence valide.

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

L'application est uniquement installée par l'administrateur sur l'unité organisationnelle de l'utilisateur.

L'application est désormais installée uniquement par l'administrateur pour l'UO de utilisateur2@domaine1.com. Il n'est plus installé pour tous les membres de l'organisation.

Requête userLicense.get

Cette requête appelle la méthode userLicense.get pour obtenir l'état de la licence utilisateur3@domaine1.com et déterminer si elle est autorisée à utiliser l'application.

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

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

Corps de la réponse

Étant donné que l'application est uniquement installée par l'administrateur pour utilisateur2@domaine1.com, la réponse renvoie une licence utilisateur pour utilisateur3@domaine1.com, où enabled est false, ce qui indique que l'administrateur du domaine domain1.com n'a pas activé l'application pour ce domaine, et state est ACTIVE, indiquant que l'utilisateur dispose d'une licence valide et doit être autorisé à utiliser l'application.

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

Requête userLicense.get

Cette requête appelle la méthode userLicense.get pour obtenir l'état de la licence utilisateur2@domaine1.com et déterminer si elle est autorisée à utiliser l'application.

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

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

Corps de la réponse

Comme l'application est uniquement installée par l'administrateur pour utilisateur2@domaine1.com, la réponse renvoie une licence utilisateur pour utilisateur2@domaine1.com, où enabled est true et state est 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"
}

L'application est supprimée pour tous les membres de l'organisation.

L'application a été supprimée pour tous les membres de l'organisation. L'utilisateur utilisateur1@domaine1.com a toujours accès à l'application, car il l'a déjà installée individuellement.

Requête userLicense.get

Cette requête appelle la méthode userLicense.get pour obtenir l'état de la licence utilisateur2@domaine1.com et déterminer si elle est autorisée à utiliser l'application.

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

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

Corps de la réponse

Étant donné que l'application a été supprimée pour tous les membres de l'organisation, la réponse renvoie une licence utilisateur pour utilisateur2@domaine1.com, où enabled est false et state est UNLICENSED, ce qui indique que l'administrateur du domaine de cet utilisateur n'a pas attribué de siège à cet utilisateur.

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

Requête userLicense.get

Cette requête appelle la méthode userLicense.get pour obtenir l'état de la licence utilisateur1@domaine1.com et déterminer si elle est autorisée à utiliser l'application.

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

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

Corps de la réponse

Puisque utilisateur1@domaine1.com a déjà installé l'application individuellement, il est toujours autorisé à l'utiliser. La réponse renvoie une licence utilisateurenabled est true et state est 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"
}

Les notifications de licence issues de toutes les actions ci-dessus

Licence LicenseNotification.list

Une requête envoyée à la méthode licenseNotification.list récupère toutes les notifications de licence de l'application.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Corps de la réponse

La réponse renvoie une liste de notifications de licence pour toutes les actions effectuées ci-dessus.

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