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

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

Uygulama henüz yüklenmedi

lisansbildirimi.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, kullanici1@alan1.com için kullanıcı lisansı döndürülür. Bu yanıtta enabled true ise alan1.com alan yöneticisinin bu alan için uygulamayı etkinleştirdiği, state ACTIVE ise kullanici1@alan1.com kullanıcısının geçerli bir lisansa sahip olduğu ve uygulamayı kullanmasına izin verilmesi gerektiği anlamına gelir.

{
  "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 öğesinin ACTIVE olduğu domain1.com için müşterinin geçerli bir lisansa sahip olduğunu belirten müşteri lisansını döndürür.

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

Uygulama belirli bir kullanıcının kuruluş birimi için yalnızca yönetici haklarıyla yüklenmiştir

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.

userLisans.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"
}

userLisans.get isteği

Bu istek, kullanici2@alan1.com adresinin 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 yalnızca kullanici2@alan1.com için yönetici haklarıyla yüklendiğinden yanıt, kullanici2@alan1.com için enabled değerinin true ve state değerinin ACTIVE olduğu bir kullanıcı lisansı döndürü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, kullanici2@alan1.com adresinin 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 bir 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 sahip olmaya devam eder. 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}"
}