من خلال تقديم نماذج لطلبات وردود من 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 التطبيق للجميع في المؤسسة.
طلب user License.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"
}
طلب ترخيص customer.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
}
]
}
لم يتم تثبيت التطبيق إلا من خلال المشرف للوحدة التنظيمية لمستخدم محدّد.
لم يتم تثبيت التطبيق الآن إلا من خلال المشرف للوحدة التنظيمية user2@domain1.com. لم يعد المشرف مثبتًا للجميع في المؤسسة.
طلب user License.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 لم يفعِّل هذا النطاق وأنّ مشرف النطاق هو ACTIVE
، ما يشير إلى أنّ المستخدم يملك ترخيصًا صالحًا ويجب أن يكون مسموحًا له باستخدام التطبيق.state
{
"kind": "appsmarket#userLicense",
"enabled": false,
"state": "ACTIVE",
"editionId": "default_edition",
"customerId": "domain1.com",
"applicationId": "{APPLICATION_ID}",
"id": "{USER_LICENSE_ID}",
"userId": "user3@domain1.com"
}
طلب user License.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، الوصول إلى التطبيق لأنه قد ثبّت التطبيق بشكل فردي في السابق.
طلب user License.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"
}
طلب user License.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}"
}