يوضِّح هذا المستند كيف يمكن للمشرفين على مستوى الحساب والمشرفين على المورّدين استخدام واجهة برمجة تطبيقات إدارة تراخيص Enterprise لإدارة عمليات تعيين تراخيص المستخدمين. بعد تفعيل تراخيص رموز التخزين التعريفية للمنتجات في حسابك وإنشاء المستخدمين، يمكنك استخدام واجهة برمجة تطبيقات إدارة تراخيص Enterprise لتعيين التراخيص لمستخدمي حسابك وتعديلها واستردادها وحذفها.
في هذا الإصدار، يستخدم مشرفو الحساب والموردون واجهة برمجة تطبيقات إدارة تراخيص Enterprise. يمكن أيضًا للمشرفين المفوّضين الذين لديهم الامتياز License Management
استخدام Enterprise License Manager API.
ملاحظة: يستخدم أحد عملاء Google واجهة برمجة تطبيقات إدارة تراخيص Enterprise. للحصول على معلومات عن كيفية إدارة مطوّري التطبيقات التابعة لجهات خارجية في Google للتراخيص، يُرجى الاطّلاع على Google Workspace Marketplace API.
تستند واجهة برمجة تطبيقات إدارة تراخيص Enterprise إلى منهج تصميم النقل العام التمثيلي (RESTful) لخدمات الويب.
إدارة التراخيص
منح ترخيص
قبل هذه العملية، طلب العميل أو المورّد تراخيص منتجات Google وأنشأ حساب المستخدم. لتعيين أحد تراخيص المنتجات هذه لهذا المستخدم، استخدِم طلب HTTP POST
التالي. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات:
POST https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user
ملاحظة: يمكن منح تراخيص لمستخدم لمجموعة واسعة من منتجات Google المختلفة. ولكن يتم تعيين ترخيص رمز تخزين تعريفي واحد للمستخدم فقط لكل منتج في المرة الواحدة. باستخدام واجهة برمجة التطبيقات، يمكن إعادة منح ترخيص رمز التخزين التعريفي للمستخدم إلى ترخيص رمز تخزين تعريفي مختلف داخل المنتج.
في هذا المثال، يتم تعيين رمز التخزين التعريفي لخدمة Google-Drive-storage-20GB للمستخدم الذي يملك عنوان بريده الإلكتروني الرئيسي alex@example.com:
POST https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user
نص طلب JSON:
{ "userId" : "alex@example.com", }
تعرض الاستجابة الناجحة رمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات. في حال نجاح هذا الإجراء، ستعرض الاستجابة حالة تعيين الترخيص بتنسيق بيانات JSON.
استجابة JSON
{
"kind": "licensing#licenseAssignment",
"etags": "etag value",
"selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com",
"userId": "alex@example.com",
"productId": "Google-Drive-storage",
"skuId": "Google-Drive-storage-20GB",
"skuName": "Google Drive storage 20 GB",
"productName": "Google Drive storage"
}
للمزيد من المعلومات، يُرجى الاطّلاع على الصفحة المرجعية إدراج طريقة "مهام الترخيص".
إعادة تخصيص رمز التخزين التعريفي لمنتج المستخدم باستخدام رمز تخزين تعريفي مختلف في المنتج نفسه
لإعادة منح ترخيص مستخدم إلى رمز تخزين تعريفي لترخيص جديد داخل المنتج نفسه، استخدِم طلب HTTP PUT
التالي. تتوافق واجهة برمجة التطبيقات أيضًا مع بنية التصحيح. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات:
PUT https://www.googleapis.com/apps/licensing/v1/product/productId/sku/the current skuId/user/user's email
يحدّث هذا المثال رمز التخزين التعريفي الحالي لمساحة التخزين بسعة 20 غيغابايت في Google Drive (Google-Drive-storage-storage-50 غيغابايت). رمز التخزين التعريفي للترخيص الحالي موجود في معرّف الموارد المنتظم للطلب، ويظهر رمز التخزين التعريفي للترخيص الجديد في نص الطلب:
PUT https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com
يحتوي نص طلب JSON على :
{
"kind": "licensing#licenseAssignment",
"etags": "etag value",
"selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
"userId": "alex@example.com",
"productId": "Google-Drive-storage",
"skuId": "Google-Drive-storage-50GB",
"skuName": "Google Drive storage 50 GB",
"productName": "Google Drive storage"
}
تعرض الاستجابة الناجحة رمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات. في حال نجحت الاستجابة، ستعرض الاستجابة حالة منح الترخيص بتنسيق بيانات JSON.
استجابة JSON
{
"kind": "licensing#licenseAssignment",
"etags": "etag value",
"selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
"userId": "alex@example.com",
"productId": "Google-Drive-storage",
"skuId": "Google-Drive-storage-50GB",
"skuName": "Google Drive storage 50 GB",
"productName": "Google Drive storage"
}
لمزيد من المعلومات، يُرجى الاطّلاع على الصفحات المرجعية طريقة تعديل وطريقة التصحيح في "المهام الدراسية".
استرداد جميع المستخدمين الذين حصلوا على تراخيص لمنتج معين
للحصول على جميع تراخيص المستخدمين لمنتج معيّن، استخدِم طلب HTTP GET
التالي. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. سلسلة طلب البحث customerId
هي اسم النطاق الأساسي للعميل. تحدّد سلسلة طلب البحث maxResults
عدد إدخالات تراخيص المستخدمين التي يتم عرضها في ردّ واجهة برمجة التطبيقات:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/users?customerId=primary domain name&maxResults=max results per page
بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات.
يسرد هذا المثال الصفحة الأولى من النتائج لجميع المستخدمين في النطاق example.com الذين تم منحهم تراخيص لمنتج Google-Drive-storage:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/users?customerId=example.com&maxResults=2
تعرض الاستجابة الناجحة رمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات. وفي حال نجاحها، ستعرض الاستجابة قائمة التراخيص بتنسيق JSON.
استجابة JSON
{ "kind" : "licensing#licenseAssignmentList", "etag": "etag value", "nextPageToken" : "the next page token value", "items": [ { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-50GB", "skuName": "Google Drive storage 50 GB", "productName": "Google Drive storage" }, { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/keshav@example.com", "userId": "keshav@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, ... }
لمزيد من المعلومات، يُرجى الاطّلاع على الصفحة المرجعية لطريقةlistForProduct في "المهام الدراسية".
استرداد جميع المستخدمين الذين تم تعيين تراخيص لهم لرمز تخزين تعريفي لمنتج محدد
للحصول على قائمة بجميع المستخدمين الذين لديهم تراخيص لرمز تخزين تعريفي محدّد، يمكنك استخدام طلب HTTP GET
التالي. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. سلسلة طلب البحث customerId
هي اسم النطاق الأساسي للعميل. تحدّد سلسلة طلب البحث maxResults
عدد إدخالات المستخدمين التي يتم عرضها في ردّ واجهة برمجة التطبيقات:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/users?customerId=primary domain name&maxResults=max results per response page
بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات.
يعرض هذا المثال الصفحة الأولى من جميع المستخدمين في نطاق example.com الذين حصلوا على ترخيص لرمز التخزين التعريفي لخدمة Google-Drive-storage-200 غيغابايت. تسرد الاستجابة إدخالين للمستخدم لكل صفحة:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/users?customerId=example.com&maxResults=2
تعرض الاستجابة الناجحة رمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات. في حال نجاح الاستجابة، ستعرض الاستجابة قائمة التراخيص بتنسيق JSON.
استجابة JSON
{ "kind" : "licensing#licenseAssignmentList", "etag": "etag value", "nextPageToken" : "next page token's value", "items": [ { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/mary@example.com", "userId": "mary@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, ... }
للمزيد من المعلومات، يُرجى الاطّلاع على الصفحة المرجعية لطريقةlistForProductAndSku الخاصة بالمهام.
استرداد ترخيص مستخدم معين حسب رمز التخزين التعريفي للمنتج
للحصول على ترخيص مستخدم معيَّن حسب رمز التخزين التعريفي للمنتج، استخدِم طلب HTTP GET
التالي. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId
يحصل هذا المثال على رمز تخزين تعريفي للمنتج في مساحة تخزين Google Drive بسعة 50 غيغابايت للمستخدم الذي يكون userId
لديه alex@example.com:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com
في حال حصل المستخدم على هذا الترخيص، تكون الاستجابة ناجحة ورمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات. وفي حال نجحت الاستجابة، ستعرض الاستجابة ترخيص المستخدم بتنسيق JSON.
استجابة JSON
{
"kind": "licensing#licenseAssignment",
"etag": "etag value",
"selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com",
"userId": "keshav@example.com",
"productId": "Google-Drive-storage",
"skuId": "Google-Drive-storage-50GB",
"skuName": "Google Drive storage 50 GB",
"productName": "Google Drive storage"
}
للمزيد من المعلومات، يُرجى الاطّلاع على الصفحة المرجعية الحصول على طريقة "المهام الدراسية".
حذف ترخيص
لإلغاء تعيين ترخيص من مستخدم، استخدِم طلب HTTP DELETE
التالي. ضمِّن عنوان Authorization
كما هو موضّح في تفويض الطلبات. بالنسبة إلى معرّفات المنتجات ورموز التخزين التعريفية، يُرجى الاطّلاع على المنتجات ورموز التخزين التعريفية المتاحة لواجهة برمجة التطبيقات:
DELETE https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId
في هذا المثال، يتم إلغاء تعيين ترخيص Google-Drive-storage-50GB من المستخدم الذي يكون userId
الخاص به هو alex@example.com:
DELETE https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com
تعرض الاستجابة الناجحة رمز حالة HTTP 200
. للتعرّف على رموز الخطأ المحتملة، يُرجى الاطّلاع على رموز الخطأ لواجهة برمجة التطبيقات.
للمزيد من المعلومات، يُرجى الاطّلاع على الصفحة المرجعية لطريقة الحذف في "مهام الترخيص".
رموز الخطأ
إذا لم يتم قبول الطلب، سيتضمّن الردّ تفسيرًا مختصرًا للخطأ:
رمز الخطأ | الوصف |
---|---|
400 | طلب غير صالح - عنوان البريد الإلكتروني للمستخدم غير صالح. |
400 | طلب غير صالح - رمز التخزين التعريفي/المنتج غير موجود. |
401 | لا يملك المُنفِّذ بيانات اعتماد لطلب البيانات من واجهة برمجة التطبيقات هذه. |
404 | إذا لم يكن لدى المستخدم هذا الترخيص، ستظهر في الاستجابة رمز الخطأ "لم يتم العثور على الصفحة". |
412 | لم يتم استيفاء شرط مسبق. للحصول على تفاصيل عن هذا الخطأ، اطّلِع على الحقل message . على سبيل المثال:
|
503 | خدمة إدارة التراخيص غير متوفرة. |