คู่มือนี้จะแสดงวิธีรับการติดตั้งแอป 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}"
}