รับรายละเอียดการติดตั้งแอปและการให้สัญญาอนุญาต

คู่มือนี้จะแสดงวิธีรับรายละเอียดการติดตั้งและการอนุญาตให้ใช้สิทธิของแอปใน Google Workspace Marketplace โดยแสดงตัวอย่างคำขอและคำตอบจาก Google Workspace Marketplace API

ยังไม่ได้ติดตั้งแอปพลิเคชัน

คำขอ 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) ของผู้ใช้ที่เฉพาะเจาะจง

ตอนนี้แอปพลิเคชันนี้ติดตั้งสำหรับผู้ดูแลระบบของ 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 เป็น 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}"
}