查询报告

Report 包含单个 app bundle 分析的结果,其中包括合规性检查和数据监控结果。通过 Checks Console 的合规性数据监控页面提供的几乎所有数据,都可以通过报告以编程方式访问。

Checks API 提供了访问报告的标准 GetList 方法:

选择要返回的字段

由于报告包含大量数据,因此默认情况下仅返回 nameresultsUri 字段。如需返回一组不同的字段,请在 fields 网址查询参数中明确列出。

例如:

GET https://checks.googleapis.com/v1alpha/accounts/123/apps/456/reports/789?fields=name,checks(type,state)

返回:

{
  "name": "accounts/123/apps/456/reports/789",
  "checks": [
    {
      "type": "PRIVACY_POLICY_UPDATE_DATE_RECENT",
      "state": "PASSED"
    },
    ...
  ]
}

列出嵌套字段时,可以使用点语法,也可以用括号将其括起来。

例如,

fields=checks.type,checks.state

等效于

fields=checks(type,state)

圆括号也可以递归使用,例如:

fields=checks(type,state,evidence(permissions,sdks))

这样可以让表达式更简洁。

fields 查询参数的值也称为字段掩码。如需了解详情,请参阅字段掩码

以下是 GetList 方法的更多字段掩码示例:

获取

表达式 输出
* 返回所有字段。
name,checks 返回 name 以及 checks 的所有嵌套字段。
name,checks(type,state) 返回 namechecks.typechecks.state
name,dataMonitoring 返回 name 以及 dataMonitoring 的所有嵌套字段。

列表

表达式 输出
* 返回所有字段。
reports(name,checks) 返回 name 以及 checks 的所有嵌套字段。
reports(name,checks(type,state)) 返回 namechecks.typechecks.state
reports(name,dataMonitoring) 返回 name 以及 dataMonitoring 的所有嵌套字段。

过滤报告…

您可以使用 filter 网址查询参数传递过滤表达式,以过滤 List 方法返回的报告。

下面是一些示例:

表达式 输出
appBundle.releaseType = PRE_RELEASE 仅返回预发布 app bundle 的报告。
appBundle.releaseType = PUBLIC 仅返回公开 app bundle 的报告。
appBundle.codeReferenceId = abc123 返回 codeReferenceId 等于 abc123 的报告。

不支持按这些字段路径过滤:

  • checks.evidence.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • checks.evidence.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • checks.evidence.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • checks.evidence.privacyPolicyTexts.policyFragment.htmlContent
  • checks.evidence.sdkIssues.sdk.id
  • dataMonitoring.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • dataMonitoring.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • dataMonitoring.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • dataMonitoring.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.sourceUri
  • dataMonitoring.permissions.metadata.lastDetectedAppVersion
  • resultsUri

如需了解如何创建更多过滤表达式,请参阅 AIP-160

报告内的过滤检查

您可以使用 checksFilter 网址查询参数传递过滤表达式,以过滤报告中的检查结果。响应中仅包含与过滤条件表达式匹配的检查。ListGet 方法均支持此参数。

下面是一些示例:

表达式 输出
state = FAILED 仅包含失败的检查。
citations.type:GDPR 仅包含与 GDPR 相关的检查。
state = FAILED AND citations.type:GDPR 仅包含与 GDRP 相关的失败检查。
regionCodes:CA 仅包括与加拿大地区相关的支票。
state = FAILED AND severity = PRIORITY 仅包含失败的优先级检查。

不支持按这些字段路径过滤:

  • evidence.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • evidence.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • evidence.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • evidence.privacyPolicyTexts.policyFragment.htmlContent
  • evidence.sdkIssues.sdk.id

如需了解如何创建更多过滤表达式,请参阅 AIP-160

分页

默认情况下,List 方法最多返回 10 份报告。您可以通过设置 pageSize 网址查询参数来更改此设置。最大值为 50

当需要提取更多结果时,List 方法会返回 nextPageToken

{
  "reports": [
    ...
  ],
  "nextPageToken": "CAEQ0ITI8K7ngAMaIDY3MThjNjQ3NGZmNzBhZGI4NWI5NjAyN2ViZmQ5MWVh"
}

使用 pageToken 网址查询参数将此令牌传递给 List 方法,以获取下一页结果。