هل لديك 5 دقائق؟ يُرجى مساعدتنا في تحسين مستندات Google Workspace Marketplace من خلال المشاركة في استطلاع سريع على الإنترنت.

الحصول على تفاصيل تثبيت التطبيق والترخيص

من خلال تقديم أمثلة على الطلبات وردودها من Google Workspace Marketplace API، يوضِّح هذا الدليل طريقة الحصول على تفاصيل تثبيت التطبيق والترخيص في تطبيق Google Workspace Marketplace.

لم يتم تثبيت التطبيق حتى الآن

طلب ترخيص NotificationNotification.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.

طلب ترخيص NotificationNotification.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 للحصول على حالة الترخيص 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 للحصول على حالة الترخيص للنطاق 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 للحصول على حالة الترخيص 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 للحصول على حالة الترخيص 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 للحصول على حالة الترخيص 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 للحصول على حالة الترخيص 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"
}

إشعارات الترخيص من جميع الإجراءات أعلاه

طلب ترخيص NotificationNotification.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}"
}