קבלת פרטים על התקנת אפליקציה ורישוי

במדריך הזה נספק בקשות לדוגמה ותשובות מ-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}"
}