من خلال تقديم أمثلة على الطلبات والردود من 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
يستدعي هذا الطلب طريقة 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
يستدعي هذا الطلب طريقة 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
يستدعي هذا الطلب طريقة 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
يستدعي هذا الطلب طريقة 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}"
}