查询报告

Report 包含单个应用包分析的结果,包括合规性检查和数据监控结果。通过检查控制台的合规性数据监控页面提供的几乎所有数据都可以通过报告以程序化方式访问。

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 返回 namechecks 的所有嵌套字段。
name,checks(type,state) 返回 namechecks.typechecks.state
name,dataMonitoring 返回 namedataMonitoring 的所有嵌套字段。

列表

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

过滤报告…

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

下面是一些示例:

表达式 输出
appBundle.releaseType = PRE_RELEASE 仅返回预发布 app bundle 的报告。
appBundle.releaseType = PUBLIC 仅返回公开应用包的报告。
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 方法,以提取下一页结果。