为移动应用创建 reCAPTCHA 密钥

本页面介绍了如何创建 reCAPTCHA 密钥(也称为“密钥”)来验证移动应用上的用户互动。

reCAPTCHA 密钥代表着如何为移动应用(应用)配置 reCAPTCHA。

准备工作

  • 为 reCAPTCHA 准备好环境
  • 确保您拥有以下 Identity and Access Management 角色:reCAPTCHA Enterprise Admin (roles/recaptchaenterprise.admin)。

创建 reCAPTCHA 密钥

您只能为移动应用创建基于得分的密钥。

为移动应用创建 reCAPTCHA 密钥时,我们建议遵循以下做法:

  • 为每个移动应用创建一个 reCAPTCHA 密钥。
  • 对于 Android,请针对以下情况创建单独的密钥:

    • Android 软件包仅在 Google Play 商店中提供。
    • Android 软件包仅在非 Google Play 商店应用商店中提供。
  • 为预演环境和生产环境创建单独的 reCAPTCHA 密钥。否则,您的测试环境中的数据可能会使 reCAPTCHA 风险分析受到影响。

创建 reCAPTCHA 密钥的最简单方法是通过 Google Cloud 控制台。或者,您也可以使用 reCAPTCHA Enterprise API 或 Google Cloud CLI。

控制台

  1. 在 Google Cloud 控制台中,前往 reCAPTCHA 页面。

    前往 reCAPTCHA

  2. 验证项目名称是否显示在页面顶部的项目选择器中。

    如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

  3. 点击创建密钥
  4. 显示名字段中,输入密钥的显示名。
  5. 根据您要为移动应用创建的 reCAPTCHA 密钥类型,请执行相应的操作:
  6. 为 iOS 应用创建 reCAPTCHA 密钥

    我们建议您为每个 iOS 应用创建一个 reCAPTCHA 密钥。

    1. 选择平台类型菜单中,选择 iOS 应用
      1. iOS 软件包 ID 列表部分,点击添加 iOS 软件包 ID
      2. 软件包 ID 字段中,输入您的 iOS 软件包 ID 的名称。

      3. 可选:如需添加其他软件包 ID,请点击添加 iOS 软件包 ID,然后在软件包 ID 字段中输入您的 iOS 软件包 ID 的名称。
      4. 可选:提供 Apple 开发者设置

        我们建议您提供此数据,因为借助此数据,reCAPTCHA 可为您的流量提供更准确的风险得分。

        输入以下信息:

        • 私钥 (.p8):在 Apple 开发者中心的“证书、标识符和个人资料”下生成。
        • 密钥标识符:Apple 开发者密钥标识符(由 10 个字符组成的字符串)。
        • 团队 ID:拥有用于构建应用的预配配置文件的 Apple 团队 ID(10 个字符的字符串)。
      5. 展开软件包 ID 验证和密钥类型
        1. 为了保护软件包 ID 的 reCAPTCHA 密钥,请确保将停用软件包 ID 验证开关切换到关闭状态。
        2. 对于非生产环境,如果要指定希望密钥在为它创建任何评估时返回的得分,请执行以下操作:

          1. 点击这是一个测试密钥切换开关。
          2. Score 框中,指定 0 到 1.0 之间的得分。
      6. 点击创建密钥
      7. 新创建的密钥会列在 reCAPTCHA 密钥页面上。

    为 Android 应用创建 reCAPTCHA 密钥

    1. 选择平台类型菜单中,选择 Android 应用
    2. Android 软件包列表部分中,点击添加 Android 软件包
    3. Android 软件包字段中,输入您的 Android 软件包的名称。
    4. 可选:要添加其他软件包,请点击添加 Android 软件包,然后在 Android 软件包字段中输入其他 Android 软件包的名称。
    5. 展开软件包名称验证、应用分发和测试密钥
      1. 如需强制 reCAPTCHA 密钥仅在您的应用中使用,请关闭停用软件包名称验证切换开关。
      2. 如果您要为除 Google Play 商店外的其他应用商店提供的应用创建密钥,请开启支持通过 Google Play 商店以外的渠道分发的应用
      3. 对于非生产环境,如果要指定希望密钥在为它创建任何评估时返回的得分,请执行以下操作:

        1. 点击这是一个测试密钥切换开关。
        2. Score 框中,指定 0 到 1.0 之间的得分。
    6. 点击创建密钥
    7. 新创建的密钥会列在 reCAPTCHA 密钥页面上。

gcloud(iOS 版)

如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

在使用下面的命令数据之前,请先进行以下替换:

  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • BUNDLE_IDs:获准使用相应密钥的应用的 iOS 软件包 ID。以英文逗号分隔的列表形式指定多个软件包 ID。

执行 gcloud recaptcha keys create 命令:

Linux、macOS 或 Cloud Shell


gcloud recaptcha keys create \
--display-name=DISPLAY_NAME  \
--ios --bundle-ids=BUNDLE_IDs

Windows (PowerShell)


gcloud recaptcha keys create `
--display-name=DISPLAY_NAME  `
--ios --bundle-ids=BUNDLE_IDs

Windows (cmd.exe)


gcloud recaptcha keys create ^
--display-name=DISPLAY_NAME  ^
--ios --bundle-ids=BUNDLE_IDs

响应中包含新创建的 reCAPTCHA 密钥。

gcloud(Android 版)

如需创建 reCAPTCHA 密钥,请使用 gcloud recaptcha keys create 命令。

在使用下面的命令数据之前,请先进行以下替换:

  • DISPLAY_NAME:密钥的名称。通常是网站名称。
  • PACKAGE_NAMES:获准使用相应密钥的应用的 Android 软件包名称。以英文逗号分隔的列表形式指定多个软件包名称。

执行 gcloud recaptcha keys create 命令:

Linux、macOS 或 Cloud Shell


gcloud recaptcha keys create \
--display-name=DISPLAY_NAME  \
--android --package-names=PACKAGE_NAMES

Windows (PowerShell)


gcloud recaptcha keys create `
--display-name=DISPLAY_NAME  `
--android --package-names=PACKAGE_NAMES

Windows (cmd.exe)


gcloud recaptcha keys create ^
--display-name=DISPLAY_NAME  ^
--android --package-names=PACKAGE_NAMES

响应中包含新创建的 reCAPTCHA 密钥。

REST(iOS 版)

在使用任何请求数据之前,请先进行以下替换:

  • DISPLAY_NAME:密钥的名称。通常是应用名称。
  • BUNDLE_IDs:获准使用相应密钥的应用的 iOS 软件包 ID。以英文逗号分隔的列表形式指定多个软件包 ID。

HTTP 方法和网址:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

请求 JSON 正文:

{
  "displayName": "DISPLAY_NAME",
  "iosSettings": {
   "allowedBundleIds":"BUNDLE_IDs"

  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:


{
  "name": "projects/project-id/keys/6LfhtywnAAAAABY3sCS2duZ6A55kmDXz-PNEgKgT",
  "displayName": "DISPLAY_NAME",
  "iosSettings": {
    "allowAllBundleIds": false,
    "allowedBundleIds": [
        BUNDLE_IDS
    ]
  },
  "labels": {},
}

REST (Android)

在使用任何请求数据之前,请先进行以下替换:

  • DISPLAY_NAME:密钥的名称。通常是应用名称。
  • PACKAGE_NAMES:获准使用相应密钥的应用的 Android 软件包名称。以英文逗号分隔的列表形式指定多个软件包名称。

HTTP 方法和网址:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

请求 JSON 正文:


{
  "displayName": "DISPLAY_NAME",
  "androidSettings": {
  "allowedPackageNames":"PACKAGE_NAMES"
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:


{
  "name": "projects/project-id/keys/6LcioSknAAAAABrjlMuZv2fjIGYMqwaAFC9izhoy",
  "displayName": "DISPLAY_NAME",
  "androidSettings": {
      "allowAllPackageNames": false,
      "allowedPackageNames": [
          PACKAGE_NAMES
      ],
      "supportNonGoogleAppStoreDistribution": false
  },
  "labels": {},
}

后续步骤