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

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

הבקשה הזו קוראת לשיטה 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) של משתמש ספציפי

האפליקציה מותקנת עכשיו רק על ידי האדמין עבור היחידה הארגונית של 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}"
}