為行動應用程式建立 reCAPTCHA 金鑰

本頁說明如何建立 reCAPTCHA 金鑰 (又稱金鑰),驗證行動應用程式中的使用者互動。

reCAPTCHA 金鑰代表行動應用程式 (應用程式) 的 reCAPTCHA 設定。

事前準備

  • 準備 reCAPTCHA 環境
  • 確認您具備下列身分與存取權管理角色:reCAPTCHA Enterprise 管理員 (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頁面。

    前往 reCAPTCHA

  2. 確認頁面頂端的資源選取器中顯示了專案名稱。

    如果沒有看到專案名稱,請按一下資源選取器,然後選取專案。

  3. 按一下「建立金鑰」
  4. 在「顯示名稱」欄位中,輸入金鑰的顯示名稱。
  5. 視要為行動應用程式建立的 reCAPTCHA 金鑰類型而定,請執行適當的動作:
  6. 為 iOS 應用程式建立 reCAPTCHA 金鑰

    建議您為每個 iOS 應用程式建立一個 reCAPTCHA 金鑰。

    1. 在「應用程式類型」部分,選取「iOS」
      1. 在「iOS 軟體包 ID 清單」部分中,按一下「新增 iOS 軟體包 ID」
      2. 在「Bundle ID」(套件 ID) 欄位中,輸入 iOS 套件 ID 的名稱。

      3. 選用:如要新增其他軟體包 ID,請按一下「新增 iOS 軟體包 ID」, 並在「軟體包 ID」欄位中輸入 iOS 軟體包 ID 名稱。
      4. 如要保護軟體包 ID 的 reCAPTCHA 金鑰,請務必關閉「停用軟體包 ID 驗證」切換鈕。
      5. 選用:提供 Apple Developer 設定

        建議您提供這項資料,因為 reCAPTCHA 可以根據這些資料,更準確地評估流量風險分數。

        輸入下列資訊:

        • 私密金鑰 (.p8):在 Apple Developer Center 的「Certificates, Identifiers & Profiles」下方產生。
        • 金鑰 ID:Apple 開發人員金鑰 ID (10 個字元的字串)。
        • 團隊 ID:擁有用於建構應用程式的佈建設定檔的 Apple 團隊 ID (10 個字元的字串)。
      6. 選用:按一下「下一步 (選用)」
        1. 如要為非正式版環境指定分數,讓金鑰在建立任何評估時傳回該分數,請按照下列步驟操作:

          1. 在「其他設定」中,按一下「您建立的這組金鑰是否僅供測試之用?」切換鈕。
          2. 使用「設定分數」滑桿指定介於 0 到 1.0 的分數。
      7. 按一下 [Create key] (建立金鑰)
      8. 新建立的金鑰會列在「reCAPTCHA keys」(reCAPTCHA 金鑰) 頁面。

    為 Android 應用程式建立 reCAPTCHA 金鑰

    1. 在「應用程式類型」部分,選取「Android」
    2. 在「Android package list」(Android 套件清單) 區段中,按一下「Add Android package」(新增 Android 套件)
    3. 在「Android package」(Android 套件) 欄位中,輸入 Android 套件的名稱。
    4. 選用:如要新增其他套件,請按一下「新增 Android 套件」,然後在「Android 套件」欄位中輸入其他 Android 套件的名稱。
    5. 如要強制規定 reCAPTCHA 金鑰只能在應用程式中使用,請關閉「停用套件名稱驗證」切換鈕。
    6. 如果您想為 Google Play 商店以外的應用程式商店建立金鑰,請開啟「支援在 Google Play 商店以外平台發布應用程式」
    7. 選用:按一下「下一步 (選用)」
      1. 如要為非正式版環境指定分數,讓金鑰在建立任何評估時傳回該分數,請按照下列步驟操作:

        1. 在「其他設定」中,按一下「您建立的這組金鑰是否僅供測試之用?」切換鈕。
        2. 使用「設定分數」滑桿指定介於 0 到 1.0 的分數。
    8. 按一下 [Create key] (建立金鑰)
    9. 新建立的金鑰會列在「reCAPTCHA keys」(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": {},
}

後續步驟