Mendapatkan detail penginstalan dan pemberian lisensi aplikasi

Dengan memberikan contoh permintaan ke dan respons dari Google Workspace Marketplace API, panduan ini menunjukkan cara mendapatkan detail pemberian lisensi dan penginstalan aplikasi Google Workspace Marketplace.

Aplikasi belum diinstal

Permintaan LicenseNotification.list

Permintaan ini memanggil metode licenseNotification.list untuk mengambil daftar notifikasi pemberian lisensi untuk aplikasi tertentu.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Isi respons

Karena aplikasi belum diinstal, respons terhadap permintaan ini tidak menyertakan notifikasi pemberian lisensi apa pun.

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

Aplikasi diinstal secara terpisah

Seorang pengguna, [email protected], menginstal aplikasi satu per satu dari Google Workspace Marketplace.

Permintaan LicenseNotification.list

Permintaan ini memanggil metode licenseNotification.list dan mengambil daftar notifikasi pemberian lisensi untuk aplikasi yang telah diinstal oleh pengguna.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Isi respons

Karena [email protected] menginstal aplikasi, responsnya menyertakan satu notifikasi lisensi. Notifikasi lisensi menyertakan notifikasi penyediaan karena lisensi baru telah disediakan untuk [email protected] saat mereka menginstal aplikasi.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "[email protected]",
      "timestamp": "1641318266998",
      "provisions": [
        {
          "kind": "appsmarket#provisionNotification",
          "editionId": "default_edition",
          "seatCount": "1"
        }
      ]
    }
  ],
  "nextPageToken": "{NEXT_PAGE_TOKEN}"
}

Aplikasi ini diinstal oleh admin

Administrator domain1.com telah menginstal aplikasi untuk semua orang dalam organisasi.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi [email protected] dan menentukan apakah pengguna memiliki izin untuk menggunakan aplikasi tersebut.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Isi respons

Karena domain1.com telah menginstal aplikasi oleh admin, respons akan menampilkan lisensi pengguna untuk [email protected] dengan enabled adalah true, yang menunjukkan bahwa administrator domain untuk domain1.com telah mengaktifkan aplikasi untuk domain ini, dan state adalah ACTIVE, yang menunjukkan bahwa [email protected] memiliki lisensi yang valid dan harus diizinkan untuk menggunakan aplikasi.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "[email protected]",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Permintaan customerLicense.get

Permintaan ini memanggil metode customerLicense.get untuk mendapatkan status pemberian lisensi domain1.com guna menentukan apakah metode tersebut memiliki akses ke aplikasi.

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

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

Isi respons

Responsnya menampilkan lisensi pelanggan untuk domain1.com dengan state adalah ACTIVE, yang menunjukkan bahwa pelanggan memiliki lisensi yang valid.

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

Aplikasi ini hanya diinstal oleh admin untuk unit organisasi (OU) pengguna tertentu

Aplikasi tersebut kini hanya diinstal oleh admin untuk OU [email protected]. Admin tidak lagi diinstal untuk semua orang di organisasi.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi [email protected] dan menentukan apakah pengguna memiliki izin untuk menggunakan aplikasi tersebut.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Isi respons

Karena aplikasi hanya diinstal oleh admin untuk [email protected], respons akan menampilkan lisensi pengguna untuk [email protected] dengan enabled sebagai false, yang menunjukkan bahwa administrator domain untuk domain1.com belum mengaktifkan aplikasi untuk domain ini, dan state adalah ACTIVE, yang menunjukkan bahwa pengguna memiliki lisensi yang valid dan harus diizinkan untuk menggunakan aplikasi.

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

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi [email protected] dan menentukan apakah metode tersebut memiliki izin untuk menggunakan aplikasi.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Isi respons

Karena aplikasi hanya diinstal oleh admin untuk [email protected], respons akan menampilkan lisensi pengguna untuk [email protected] dengan enabled adalah true dan state adalah ACTIVE.

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

Aplikasi dihapus untuk semua orang di organisasi

Aplikasi telah dihapus untuk semua orang di organisasi. Pengguna, [email protected], masih memiliki akses ke aplikasi karena sebelumnya menginstal aplikasi tersebut satu per satu.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi [email protected] dan menentukan apakah metode tersebut memiliki izin untuk menggunakan aplikasi.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Isi respons

Karena aplikasi telah dihapus untuk semua orang dalam organisasi, respons akan menampilkan lisensi pengguna untuk [email protected] dengan enabled adalah false dan state adalah UNLICENSED, yang menunjukkan bahwa administrator domain pengguna ini tidak menetapkan slot untuk aplikasi kepada pengguna ini.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi [email protected] dan menentukan apakah pengguna memiliki izin untuk menggunakan aplikasi tersebut.

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

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/[email protected]

Isi respons

Karena [email protected] sebelumnya menginstal aplikasi secara terpisah, pengguna tersebut masih memiliki izin untuk menggunakannya. Responsnya akan menampilkan lisensi pengguna dengan enabled adalah true dan state adalah ACTIVE.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "[email protected]",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "[email protected]"
}

Notifikasi lisensi dari semua tindakan di atas

Permintaan LicenseNotification.list

Permintaan ke metode licenseNotification.list akan mengambil semua notifikasi pemberian lisensi untuk aplikasi.

GET /appsmarket/v2/licenseNotification/{applicationId}

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

Isi respons

Respons tersebut akan menampilkan daftar notifikasi lisensi untuk semua tindakan yang dilakukan di atas.

{
  "kind": "appsmarket#licenseNotificationList",
  "notifications": [
    {
      "kind": "appsmarket#licenseNotification",
      "id": "{LICENSE_NOTIFICATION_ID}",
      "applicationId": "{APPLICATION_ID}",
      "customerId": "[email protected]",
      "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}"
}