Uygulama yükleme ve lisanslamayla ilgili ayrıntıları alma

Bu kılavuzda, Google Workspace Marketplace API'ye gönderilen örnek istekler ve API'den alınan yanıtlar sağlanarak Google Workspace Marketplace uygulama yükleme ve lisanslama ayrıntılarının nasıl alınacağı gösterilmektedir.

Uygulama henüz yüklenmemiş

licenseNotification.list isteği

Bu istek, belirli bir uygulamanın lisanslama bildirimlerinin listesini almak için licenseNotification.list yöntemini çağırır.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Yanıt gövdesi

Uygulama henüz yüklenmediğinden bu istek için verilen yanıtta lisanslama bildirimi yer almaz.

{
  "kind": "appsmarket#licenseNotificationList",
  "nextPageToken": ""
}

Uygulama ayrı ayrı yüklenir

user1@domain1.com adlı bir kullanıcı, uygulamayı Google Workspace Marketplace'ten tek tek yükledi.

licenseNotification.list isteği

Bu istek, licenseNotification.list yöntemini çağırır ve kullanıcı tarafından yüklenen uygulamanın lisanslama bildirimlerinin listesini alır.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Yanıt gövdesi

Uygulamayı user1@domain1.com yüklediği için yanıtta bir lisans bildirimi yer alır. Uygulamayı yükleyen user1@domain1.com kullanıcısı için yeni bir lisans ayrıldığı için lisans bildirimi bir provision bildirimi içerir.

{
  "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}"
}

Uygulama yönetici tarafından yüklendi

domain1.com alanının yöneticisi, uygulamayı kuruluştaki herkes için yükledi.

userLicense.get isteği

Bu istek, user1@domain1.com kullanıcısının lisanslama durumunu almak ve kullanıcının uygulamayı kullanma iznine sahip olup olmadığını belirlemek için userLicense.get yöntemini çağırır.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Yanıt gövdesi

Uygulama, alan1.com alanına yönetici tarafından yüklendiğinde yanıtta, alan1.com alan yöneticisinin bu alan için uygulamayı etkinleştirdiğini belirten enabled true ve kullanıcı1@alan1.com için geçerli bir lisansa sahip olduğunu ve uygulamayı kullanmasına izin verilmesi gerektiğini belirten state ACTIVE değerleri döndürülür.

{
  "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 isteği

Bu istek, uygulamaya erişip erişemediklerini belirlemek için domain1.com'un lisanslama durumunu almak üzere customerLicense.get yöntemini çağırır.

GET /appsmarket/v2/customerLicense/{applicationId}/{customerId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/customerLicense/{applicationId}/domain1.com

Yanıt gövdesi

Yanıt, state değerinin ACTIVE olduğu domain1.com için müşteri lisansını döndürür. Bu, müşterinin geçerli bir lisansa sahip olduğunu gösterir.

{
  "kind": "appsmarket#customerLicense",
  "id": "{CUSTOMER_LICENSE_ID}",
  "applicationId": "{APPLICATION_ID}",
  "customerId": "domain1.com",
  "state": "ACTIVE",
  "editions": [
    {
      "editionId": "default_edition",
      "seatCount": -1
    }
  ]
}

Uygulama yalnızca belirli bir kullanıcının kuruluş birimi (OU) için yönetici tarafından yüklenir.

Uygulama artık yalnızca user2@domain1.com kullanıcısının kuruluş birimi için yönetici tarafından yüklenmiştir. Artık kuruluştaki herkes için yönetici tarafından yüklenmiyor.

userLicense.get isteği

Bu istek, user3@domain1.com kullanıcısının lisanslama durumunu almak ve kullanıcının uygulamayı kullanma izni olup olmadığını belirlemek için userLicense.get yöntemini çağırır.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user3@domain1.com

Yanıt gövdesi

Uygulama yalnızca kullanici2@alan1.com için yönetici tarafından yüklendiğinden, yanıtta kullanici3@alan1.com için bir kullanıcı lisansı döndürülür. Bu yanıtta enabled, alan1.com alan yöneticisinin bu alan için uygulamayı etkinleştirmediğini belirten false değerini, state ise kullanıcının geçerli bir lisansa sahip olduğunu ve uygulamayı kullanmasına izin verilmesi gerektiğini belirten ACTIVE değerini alır.

{
  "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 isteği

Bu istek, user2@domain1.com kullanıcısının lisanslama durumunu almak ve kullanıcının uygulamayı kullanma iznine sahip olup olmadığını belirlemek için userLicense.get yöntemini çağırır.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Yanıt gövdesi

Uygulama yalnızca kullanici2@alan1.com için yönetici haklarıyla yüklendiğinden yanıtta, kullanici2@alan1.com için enabled değerinin true ve state değerinin ACTIVE olduğu bir kullanıcı lisansı döndürülür.

{
  "kind": "appsmarket#userLicense",
  "enabled": true,
  "state": "ACTIVE",
  "editionId": "default_edition",
  "customerId": "domain1.com",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user2@domain1.com"
}

Uygulama, kuruluştaki herkes için silinir.

Uygulama, kuruluştaki herkes için silindi. Daha önce uygulamayı tek tek yüklediği için user1@domain1.com kullanıcısı uygulamaya erişmeye devam eder.

userLicense.get isteği

Bu istek, user2@domain1.com kullanıcısının lisanslama durumunu almak ve uygulamayı kullanma iznine sahip olup olmadığını belirlemek için userLicense.get yöntemini çağırır.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user2@domain1.com

Yanıt gövdesi

Uygulama, kuruluştaki herkes için silindiğinden yanıtta, enabled false ve state UNLICENSED olan user2@domain1.com için bir kullanıcı lisansı döndürülür. Bu, bu kullanıcının alanının yöneticisinin uygulama için bu kullanıcıya koltuk atamadığını gösterir.

{
  "kind": "appsmarket#userLicense",
  "enabled": false,
  "state": "UNLICENSED",
  "applicationId": "{APPLICATION_ID}",
  "id": "{USER_LICENSE_ID}",
  "userId": "user2@domain1.com"
}

userLicense.get isteği

Bu istek, user1@domain1.com kullanıcısının lisanslama durumunu almak ve kullanıcının uygulamayı kullanma iznine sahip olup olmadığını belirlemek için userLicense.get yöntemini çağırır.

GET /appsmarket/v2/userLicense/{applicationId}/{userId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/userLicense/{applicationId}/user1@domain1.com

Yanıt gövdesi

user1@domain1.com kullanıcısı daha önce uygulamayı ayrı ayrı yüklediği için uygulamayı kullanma iznine hâlâ sahiptir. Yanıt, enabled'nin true ve state'nin ACTIVE olduğu bir kullanıcı lisansı döndürür.

{
  "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"
}

Yukarıdaki tüm işlemlerden gelen lisans bildirimleri

licenseNotification.list isteği

licenseNotification.list yöntemine gönderilen bir istek, uygulamanın tüm lisanslama bildirimlerini alır.

GET /appsmarket/v2/licenseNotification/{applicationId}

curl -H "Authorization: Bearer {TOKEN}" https://appsmarket.googleapis.com/appsmarket/v2/licenseNotification/{applicationId}

Yanıt gövdesi

Yanıt, yukarıda gerçekleştirilen tüm işlemler için lisans bildirimlerinin listesini döndürür.

{
  "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}"
}