如何通过 Google Workspace Admin SDK 获取可用许可证?

问题描述 投票:0回答:3

在 Google 管理屏幕上,我可以获取可用许可证和已用许可证的数量,如下所示:

Google Admin Subscription

如何通过 API 获取这些号码?

注意:我阅读了这个问题并尝试过,但效果不佳。

-- 编辑:2021/07/15 --

我的要求:

https://developers.google.com/admin-sdk/reports/reference/rest/v1/customerUsageReports/get enter image description here

  • 日期:(几天前)
  • 参数:
    accounts:gsuite_unlimited_total_licenses
    (来自账户参数

API 响应:

{
  "kind": "admin#reports#usageReports",
  "etag": "\"occ7bTD-Q2yefKPIae3LMOtCT9xQVZYBzlAbHU5b86Q/gt9BLwRjoWowpJCRESV3vBMjYMc\""
}

期望:我想获得与 GUI 显示的数据相同的数据。


说实话,即使我能通过这个API获取信息,我也不满意,因为它似乎不像GUI那样响应实时数据。

google-workspace google-admin-sdk
3个回答
3
投票

1. 使用您提到的2 available, 1132 assigned


    注意
  • :报告不是实时数据,因此您必须使用至少在执行日期前 2 天设置的“日期”参数来运行 API 调用 鉴于此,您必须在
  • Report API
  • param
     中使用正确的日期运行此 GET 方法
    
  • {date}
    然后您需要解析
  • GET https://admin.googleapis.com/admin/reports/v1/usage/dates/{date}

    以找到您正在寻找的所需许可证。

    
    

  • 参考 -
  • https://developers.google.com/admin-sdk/reports/reference/rest/v1/customerUsageReports#UsageReports

  • 这是解析后的样子
  • parameters
重要

:报告将始终追溯到 2 天前,因此您可以在我的示例中获取许可证总数 [ { "BoolValue": null, "DatetimeValueRaw": null, "DatetimeValue": null, "IntValue": 12065, "MsgValue": null, "Name": "accounts:gsuite_enterprise_total_licenses", "StringValue": null }, { "BoolValue": null, "DatetimeValueRaw": null, "DatetimeValue": null, "IntValue": 12030, "MsgValue": null, "Name": "accounts:gsuite_enterprise_used_licenses", "StringValue": null } ] ,然后使用

gsuite_enterprise_total_licenses
检索所有当前分配的许可证

参考
    https://developers.google.com/admin-sdk/licensing/reference/rest

2. 使用 Enterprise License Manager API


从经销商的角度检索信息,您需要使用
    Reseller API
  • 方法,提供您的
    subscriptions.get
    customerId
    ,调用以下
    subscriptionId
    请求:
    
    
  • GET
它的响应将是一个 
    GET https://reseller.googleapis.com/apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}
  • 资源,其中包含有关许可证和
    subscriptions
    的各种信息,如果展开,它看起来像这样:
    
    
  • Seats object
  • { "numberOfSeats": integer, "maximumNumberOfSeats": integer, "licensedNumberOfSeats": integer, "kind": string }

    应是许可证总量,

    numberOfSeats
    应是分配有该许可证的用户数量。
    
    

  • 注意

    :为了使用此 API,给定租户应拥有“完全执行并签署的经销商合同” - https://developers.google.com/admin-sdk/reseller/v1/how-tos /先决条件

  • 参考 -
  • https://developers.google.com/admin-sdk/reseller/reference/rest/v1/subscriptions


1
投票

您只能使用 API 获取分配的许可证数量,可用数量不会公开,因此不会返回。

更多信息:

鉴于您已为您的域分配了许可证,并且查询 API 的用户有权访问此信息,您可以使用以下请求检索数据:

licensedNumberOfSeats

虽然没有必要,但我添加了参数
curl \ 'https://admin.googleapis.com/admin/reports/v1/usage/dates/2021-07-10?parameters=accounts%3Agsuite_unlimited_total_licenses&fields=*&key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed

以确保返回所有数据。

这给了我这样的回应:

field=*

在这里您可以看到 
{ "kind": "admin#reports#usageReports", "etag": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "usageReports": [ { "kind": "admin#reports#usageReport", "date": "2021-07-10", "etag": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "entity": { "type": "CUSTOMER", "customerId": "C0136mgul" }, "parameters": [ { "name": "accounts:gsuite_unlimited_total_licenses", "intValue": "233" } ] } ] }

intValue
是 233 - 这反映在 UI 中:
enter image description here
功能请求:

但是,您可以让 Google 知道这是一项对于访问其 API 非常重要的功能,并且您希望要求他们实现该功能。

Google 的

Issue Tracker

是开发人员报告问题并为其开发服务提出功能请求的地方,我强烈建议您在那里提出功能请求。最好的归档组件是 Google Admin SDK 组件,以及 accounts:gsuite_unlimited_total_licenses 模板。

    


0
投票
Enterprise License Manager API

获得

Feature Request

后,我使用

assignments
根据许可证类型过滤记录。
这是完整的代码。

sdkName

	
© www.soinside.com 2019 - 2024. All rights reserved.