このガイドでは、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レスポンスの本文
レスポンスは、domain1.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 の OU に管理者によってのみインストールされるようになりました。組織内のすべてのユーザーに対して管理者がインストールすることはなくなりました。
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 は ACTIVE であり、ユーザーが有効なライセンスを持っており、アプリケーションの使用を許可されるべきであることを示します。
{
"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"
}
組織内のすべてのユーザーに対してアプリケーションが削除されます
組織内のすべてのユーザーに対してアプリケーションが削除されました。ユーザー 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}"
}