評価の作成

このページでは、アプリケーションのバックエンドから送られたユーザーの reCAPTCHA レスポンス トークンを評価する方法を説明します。

ウェブユーザーの場合、ユーザーのレスポンス トークンを次の 3 つの方法のいずれかで取得できます。

  • grecaptcha.enterprise.execute の呼び出しによって返された Promise の解決された値
  • ユーザーがサイトでフォームを送信するときの g-recaptcha-response POST パラメータ
  • data-callbackg-recaptcha タグ属性または grecaptcha.enterprise.render メソッドのコールバックパラメータで指定されている場合、コールバック関数の文字列引数として

reCAPTCHA ユーザー レスポンス トークンはそれぞれ 1 回だけ評価できます。 ユーザーがサイトで行う後続のアクションを評価する必要がある場合、または評価を作成する前にトークンの有効期限が切れた場合は、grecaptcha.enterprise.execute() を再度呼び出して新しいトークンを生成する必要があります。

API リクエスト

projects.assessments.create メソッドを使用して評価を作成します。

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: GCP プロジェクト ID
  • token: grecaptcha.enterprise.execute() 呼び出しから返されたトークン
  • key: サイト / アプリに関連付けられた reCAPTCHA キー

HTTP メソッドと URL:

POST https://recaptchaenterprise.googleapis.com/v1/projects/project-id/assessments

JSON 本文のリクエスト:

{
  "event": {
    "token": "token",
    "siteKey": "key"
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

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

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth application-default 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/assessments" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "tokenProperties": {
    "valid": True,
    "hostname": "www.google.com",
    "action": "homepage",
    "createTime": "2019-03-28T12:24:17.894Z"
   },
  "riskAnalysis": {
    "score": 0.1,
    "reasons": ["AUTOMATION"]
  },
  "event": {
    "token": "token",
    "siteKey": "key"
   },
  "name": "projects/project-id/assessments/b6ac310000000000"
}

次のステップ