為行動應用程式建立 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. 在「Application type」部分,選取「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. 在「Application type」部分,選取「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": {},
}

後續步驟