5 分でよろしいですか?簡単なオンライン アンケートにご回答いただき、Google Workspace Marketplace のドキュメントの改善にご協力ください。

アプリのインストールとライセンスの詳細を取得する

このガイドでは、Google Workspace Marketplace API に対するリクエストとレスポンスの例を示して、Google Workspace Marketplace アプリのインストールとライセンスの詳細情報を取得する方法を示します。

アプリケーションはまだインストールされていません

LicenseNotification.list リクエスト

このリクエストは、特定のアプリのライセンス通知のリストを取得する licenseNotification.list メソッドを呼び出します。

GET /appsmarket/v2/licenseNotification/{applicationId}

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

レスポンスの本文

アプリはまだインストールされていないため、このリクエストへの応答にはライセンス通知は含まれません。

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

アプリは個別にインストールされます

ユーザー user1@domain1.com が、Google Workspace Marketplace からアプリケーションを個別にインストールしました。

LicenseNotification.list リクエスト

このリクエストによって licenseNotification.list メソッドが呼び出され、ユーザーがインストールしたアプリのライセンス通知リストが取得されます。

GET /appsmarket/v2/licenseNotification/{applicationId}

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

レスポンスの本文

user1@domain1.com がこのアプリをインストールしたため、応答には 1 つのライセンス通知が含まれます。アプリケーションのインストール時に user1@domain1.com の新しいライセンスがプロビジョニングされたため、ライセンス通知にはプロビジョニング通知が含まれます。

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

このアプリケーションは管理者によってインストールされています

domain1.com の管理者が組織内のすべてのユーザー向けにこのアプリケーションをインストールしました。

userLicense.get リクエスト

このリクエストは、userLicense.get メソッドを呼び出して user1@domain1.com のライセンス ステータスを取得し、アプリケーションを使用する権限があるかどうかを判断します。

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

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

レスポンスの本文

domain1.com はアプリケーションをインストールしているため、レスポンスで user1@domain1.com のユーザー ライセンスが返されます。ここで、enabledtrue で、domain1.com のドメイン管理者がこのドメインのアプリケーションを有効にしていることを示します。stateACTIVE で、user1@domain1.com には有効なライセンスがあるのでアプリケーションの使用が許可されています。

{
  "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 リクエスト

このリクエストでは、customerLicense.get メソッドを呼び出して domain1.com のライセンス ステータスを取得し、アプリケーションにアクセスできるかどうかを判断します。

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

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

レスポンスの本文

ドメイン 1.com の顧客ライセンスを返します。stateACTIVE であり、お客様には有効なライセンスがあります。

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

アプリケーションは特定のユーザーの組織部門(OU)にのみインストールされる

これで、このアプリケーションは user2@domain1.com の組織部門に対してのみ管理者によってインストールされた状態になりました。組織内のすべてのユーザーに管理者がインストールされることはなくなります。

userLicense.get リクエスト

このリクエストでは、userLicense.get メソッドを呼び出して user3@domain1.com のライセンス ステータスを取得し、アプリケーションを使用する権限があるかどうかを判断します。

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

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

レスポンスの本文

アプリケーションは user2@domain1.com に対してのみ管理者でインストールされているため、レスポンスでは user3@domain1.com のユーザー ライセンスが返されます。ここで、enabledfalse です。これは、domain1.com のドメイン管理者がこのドメインに対してアプリケーションを有効にしていないことを示し、state は、ユーザーに有効なライセンスがありアプリケーションの使用が許可されていることを示しています。

{
  "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 リクエスト

このリクエストでは、userLicense.get メソッドを呼び出して user2@domain1.com のライセンス ステータスを取得し、アプリケーションを使用する権限があるかどうかを判断します。

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

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

レスポンスの本文

このアプリケーションは user2@domain1.com 用にのみ管理者によってインストールされているため、user2@domain1.com に対するユーザー ライセンスが返されます。ここで、enabledtruestateACTIVE です。

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

組織内の全ユーザーに対してアプリケーションが削除される

アプリケーションは組織内のすべてのユーザーから削除されました。ユーザー 1(user1@domain1.com)は、以前はアプリケーションを個別インストールしていたため、アプリケーションにアクセスできます。

userLicense.get リクエスト

このリクエストでは、userLicense.get メソッドを呼び出して user2@domain1.com のライセンス ステータスを取得し、アプリケーションを使用する権限があるかどうかを判断します。

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

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

レスポンスの本文

アプリケーションが組織内のすべてのユーザーに対して削除されたため、レスポンスでは user2@domain1.com のユーザー ライセンスが返されます。ここで、enabledfalsestateUNLICENSED です。これは、このユーザーのドメインの管理者が、ユーザーにアプリケーションの割り当てを割り当てなかったことを示しています。

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

userLicense.get リクエスト

このリクエストは、userLicense.get メソッドを呼び出して user1@domain1.com のライセンス ステータスを取得し、アプリケーションを使用する権限があるかどうかを判断します。

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

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

レスポンスの本文

user1@domain1.com は、以前はアプリケーションを個別にインストールしていたため、引き続き使用する権限があります。レスポンスでユーザー ライセンスが返されます。ここで、enabledtruestateACTIVE です。

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

上記のすべての操作のライセンス通知

LicenseNotification.list リクエスト

licenseNotification.list メソッドへのリクエストは、アプリのライセンス通知をすべて取得します。

GET /appsmarket/v2/licenseNotification/{applicationId}

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

レスポンスの本文

上記で実行されたすべてのアクションについて、ライセンス通知のリストが返されます。

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