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 penginstalan dan pemberian lisensi 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 satu per satu

Pengguna, user1@domain1.com, 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 user1@domain1.com menginstal aplikasi, responsnya menyertakan satu notifikasi lisensi. Notifikasi lisensi menyertakan notifikasi penyediaan karena lisensi baru disediakan untuk user1@domain1.com saat mereka menginstal aplikasi.

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

Aplikasi diinstal oleh admin

Administrator domain1.com menginstal aplikasi untuk semua orang di organisasi.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi user1@domain1.com dan menentukan apakah mereka memiliki izin untuk menggunakan aplikasi.

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

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

Isi respons

Karena admin domain1.com telah menginstal aplikasi, respons akan menampilkan lisensi pengguna untuk pengguna1@domain1.com 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 pengguna1@domain1.com memiliki lisensi yang valid dan harus diizinkan untuk menggunakan aplikasi.

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

Permintaan customerLicense.get

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

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 hanya diinstal oleh admin untuk unit organisasi (OU) pengguna tertentu

Aplikasi kini hanya diinstal oleh admin untuk OU user2@domain1.com. Aplikasi ini tidak lagi diinstal oleh admin untuk semua orang di organisasi.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi user3@domain1.com dan menentukan apakah mereka memiliki izin untuk menggunakan aplikasi.

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

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

Isi respons

Karena aplikasi hanya diinstal oleh admin untuk user2@domain1.com, respons akan menampilkan lisensi pengguna untuk user3@domain1.com dengan enabled adalah 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": "user3@domain1.com"
}

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi user2@domain1.com dan menentukan apakah pengguna memiliki izin untuk menggunakan aplikasi atau tidak.

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

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

Isi respons

Karena aplikasi hanya diinstal oleh admin untuk user2@domain1.com, respons akan menampilkan lisensi pengguna untuk user2@domain1.com 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": "user2@domain1.com"
}

Aplikasi dihapus untuk semua orang di organisasi

Aplikasi dihapus untuk semua orang di organisasi. Pengguna, user1@domain1.com, masih memiliki akses ke aplikasi karena sebelumnya mereka menginstal aplikasi secara terpisah.

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi pengguna2@domain1.com dan menentukan apakah mereka memiliki izin untuk menggunakan aplikasi.

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

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

Isi respons

Karena aplikasi dihapus untuk semua orang di organisasi, respons akan menampilkan lisensi pengguna untuk user2@domain1.com dengan enabled adalah false dan state adalah UNLICENSED, yang menunjukkan bahwa administrator domain pengguna ini tidak menetapkan kursi untuk aplikasi kepada pengguna ini.

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

Permintaan userLicense.get

Permintaan ini memanggil metode userLicense.get untuk mendapatkan status pemberian lisensi user1@domain1.com dan menentukan apakah mereka memiliki izin untuk menggunakan aplikasi.

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

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

Isi respons

Karena user1@domain1.com sebelumnya menginstal aplikasi secara terpisah, mereka masih memiliki izin untuk menggunakannya. Respons akan menampilkan lisensi pengguna dengan enabled adalah true dan state adalah 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"
}

Notifikasi lisensi dari semua tindakan di atas

Permintaan licenseNotification.list

Permintaan ke metode licenseNotification.list 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 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": "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}"
}