このガイドでは、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 のユーザー ライセンスが返されます。ここで、enabled
は true
で、domain1.com のドメイン管理者がこのドメインのアプリケーションを有効にしていることを示します。state
は ACTIVE
で、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 の顧客ライセンスを返します。state
は ACTIVE
であり、お客様には有効なライセンスがあります。
{
"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 のユーザー ライセンスが返されます。ここで、enabled
は false
です。これは、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 に対するユーザー ライセンスが返されます。ここで、enabled
は true
、state
は 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"
}
組織内の全ユーザーに対してアプリケーションが削除される
アプリケーションは組織内のすべてのユーザーから削除されました。ユーザー 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 のユーザー ライセンスが返されます。ここで、enabled
は false
、state
は UNLICENSED
です。これは、このユーザーのドメインの管理者が、ユーザーにアプリケーションの割り当てを割り当てなかったことを示しています。
{
"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 は、以前はアプリケーションを個別にインストールしていたため、引き続き使用する権限があります。レスポンスでユーザー ライセンスが返されます。ここで、enabled
は true
、state
は 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"
}
上記のすべての操作のライセンス通知
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}"
}