安装先前删除的Marketplace应用程序将客户许可证状态更改为活动

时间:2019-05-15 15:19:38

标签: google-apps-marketplace

重新安装以前删除的Marketplace应用不会将customerLicense的状态更改为LICENSED

我想确保GSuite管理员用户可以通过GSuite Admin应用程序上的“应用程序”面板将其从其GSuite域中删除后,顺利地安装我们的Marketplace应用程序。

管理员用户在Marketplace上单击“域安装”后,将采用与初始安装相同的授予和协议模式。最后,他们可以选择进行进一步的设置或完成该过程,并“启动”我们的应用程序。

我看到的问题是,为客户域获取Customer LicenseLicense Notifications不会显示有效的许可证或新的许可证通知。

用户重新安装应用程序并完成授予/服务条款流程后,我希望此API调用返回“ state = LICENSED”或新的许可证通知:

    domain = 'example.com'
    scopes = ["https://www.googleapis.com/auth/appsmarketplace.license"]
    signing_key = OpenSSL::PKey::RSA.new(ENV["GOOGLE_PRIVATE_KEY"])

    client = Google::APIClient.new(application_name: "My app", application_version: "0.0.1")
    client.retries = 3
    client.authorization = Signet::OAuth2::Client.new(
      token_credential_uri: "https://accounts.google.com/o/oauth2/token",
      audience: "https://accounts.google.com/o/oauth2/token",
      issuer: ENV["GOOGLE_SERVICE_ACCOUNT"],
      signing_key: signing_key,
      scope: scopes
    )
    client.authorization.fetch_access_token!

    licensing_api = client.discovered_api("appsmarket", "v2")
    result = client.execute(
      licensing_api.customer_license.get,
      applicationId: ENV["GOOGLE_APP_ID"],
      customerId: domain
    )
    result.data["state"] # => "UNLICENSED"

    result2 = client.execute(
      licensing_api.license_notification.list,
      applicationId: ENV["GOOGLE_APP_ID"],
      timestamp: 14.days.ago.utc.strftime("%s%L")
    )
    result2.data["notifications"] # => no new entries

我的期望是,在全新安装或重新安装之后,我将能够使用许可证通知来主动检测新用户并代表他们启动数据同步。至少,我希望Customer License能够反映出该应用程序现已获得管理员用户域的许可。

我是否误解了有关Marketplace应用程序如何获得许可或许可与与有权代表用户查询GSuite域的Marketplace应用程序有何关系?

0 个答案:

没有答案