คู่มือนี้จะแสดงวิธีรับรายละเอียดการติดตั้งและการอนุญาตให้ใช้สิทธิของแอปใน 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}"
}