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

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