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

Bu kılavuz, Google Workspace Marketplace API'ye gönderilen ve bu API'den alınan örnek istekler ve yanıtlar sağlayarak Google Workspace Marketplace uygulaması yükleme ve lisanslama ayrıntılarının nasıl alınacağını gösterir.

Uygulama henüz yüklenmediyse

licenseNotification.list isteği

Bu istek, belirli bir uygulamayla ilgili 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 isteğe verilen yanıtta lisanslama bildirimleri yer almıyor.

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

Uygulama ayrı olarak yüklenir.

user1@domain1.com kullanıcısı, 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 uygulama için 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

user1@domain1.com uygulamayı yüklediğinden yanıtta bir lisans bildirimi yer alır. Kullanıcı1@alan1.com uygulamayı yüklediğinde yeni bir lisans sağlandığından lisans bildiriminde sağlama bildirimi yer alı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"
        }
      ]
    }
  ],
  "nextPageToken": "{NEXT_PAGE_TOKEN}"
}

Uygulama, yönetici tarafından yüklenmiş olmalıdır.

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

userLicense.get isteği

Bu istek, kullanici1@alan1.com kullanıcısının lisanslama durumunu almak ve 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}/user1@domain1.com

Yanıt gövdesi

domain1.com'da yönetici uygulamayı yüklediğinden, yanıtta enabled değerinin true olduğu, domain1.com alan yöneticisinin bu alan için uygulamayı etkinleştirdiğini belirten kullanici1@domain1.com için kullanıcı lisansı döndürülür. state değeri ACTIVE olduğundan, kullanici1@domain1.com adresinin geçerli bir lisansı olduğu ve uygulamayı kullanmasına izin verilmesi gerektiği belirtilir.

{
  "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, domain1.com'un lisanslama durumunu almak için customerLicense.get yöntemini çağırır. Böylece, domain1.com'un uygulamaya erişimi olup olmadığı belirlenir.

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 lisansı 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üklenmişse

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

userLicense.get isteği

Bu istek, kullanici3@alan1.com kullanıcısının lisanslama durumunu almak ve 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 enabled değerinin false olduğu bir kullanıcı lisansı döndürülür. Bu, alan1.com alan yöneticisinin uygulama için bu alanı etkinleştirmediğini gösterir. state değeri ACTIVE olduğundan, kullanıcının geçerli bir lisansı olduğu ve uygulamayı kullanmasına izin verilmesi gerektiği belirtilir.

{
  "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 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}/user2@domain1.com

Yanıt gövdesi

Uygulama yalnızca kullanici2@alan1.com için yönetici tarafından yüklendiğinden, yanıtta enabled değerinin true, state değerinin ise ACTIVE olduğu kullanici2@alan1.com için 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. Kullanıcı, user1@domain1.com, uygulamayı daha önce ayrı ayrı yüklediği için uygulamaya erişmeye devam ediyor.

userLicense.get isteği

Bu istek, user2@domain1.com kullanıcısının lisanslama durumunu almak ve 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}/user2@domain1.com

Yanıt gövdesi

Uygulama kuruluştaki herkes için silindiğinden yanıt, enabled değerinin false ve state değerinin UNLICENSED olduğu user2@domain1.com için kullanıcı lisansı döndürür. Bu, kullanıcının alanının yöneticisinin uygulamayı bu kullanıcıya 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, kullanici1@alan1.com kullanıcısının lisanslama durumunu almak ve 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}/user1@domain1.com

Yanıt gövdesi

kullanici1@alan1.com uygulamayı daha önce ayrı olarak yüklediği için uygulamayı kullanma izni devam eder. Yanıt, enabled değerinin true ve state değerinin ACTIVE olduğu bir user license 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öntemi için yapılan 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}"
}