במדריך הזה נספק בקשות לדוגמה ותשובות מ-Google Workspace Marketplace API, כדי להראות איך לקבל פרטי רישוי והתקנה של אפליקציות מ-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}
גוף התשובה
מכיוון שהאפליקציה עדיין לא הותקנה, התשובה לבקשה הזו לא כוללת התראות לגבי רישוי.
{
"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 התקין את האפליקציה, התגובה כוללת הודעה אחת על רישיון. ההודעה על הרישיון כוללת הודעה על הקצאה, כי הוקצה רישיון חדש למשתמש 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
, שמציין שלמשתמש 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
הבקשה הזו מפעילה את ה-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}"
}