במדריך הזה מוסבר איך להשיג את פרטי ההתקנה והרישוי של האפליקציה מ-Google Workspace Marketplace, שבה מוצגות בקשות לדוגמה ותשובות מה-Google Workspace Marketplace API.
האפליקציה עדיין לא הותקנה
בקשת LicenseNotification.list
בבקשה הזו תתבצע קריאה ל-method 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
במסגרת הבקשה, מתבצעת קריאה ל-method licenseNotification.list
ומאחזרת את רשימת ההתראות לגבי רישיונות של האפליקציה שהמשתמש התקין.
GET /appsmarket/v2/licenseNotification/{applicationId}
curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}
גוף התשובה
מכיוון ש-user1@domain1.com התקין את האפליקציה, התגובה כוללת התראת רישיון אחת. התראת הרישיון כוללת התראה על ניהול הקצאות כי הוקצה רישיון חדש ל-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
בבקשה הזו מתבצעת קריאה ל-method 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
. המשמעות היא שלמשתמש1@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
בבקשה הזו מתבצעת קריאה ל-method 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) של משתמש ספציפי
האפליקציה מיועדת כרגע לניהול היחידה הארגונית user2@domain1.com. זהו אדמין שכבר לא מותקן לכל אחד בארגון.
הבקשה userLicense.get
בבקשה הזו מתבצעת קריאה ל-method 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
בבקשה הזו מתבצעת קריאה ל-method 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
בבקשה הזו מתבצעת קריאה ל-method 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
בבקשה הזו מתבצעת קריאה ל-method 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}"
}