タイトル: ERROR for site owner: Invalid site key
エラー内容
|
ERROR for site owner: Invalid site key |
reCAPTCHA を画面に表示しようとしたとき、reCAPTCHA ウィジェットの代わりに赤いエラーメッセージが表示されるケースです。サイトオーナー宛のメッセージで、利用者には表示されないようサーバー側で対処する必要があります。
発生条件 / 原因
- site_key(サイトキー)が誤っている — キー文字列が間違っている/別のサイトのキーを貼り付けている
- reCAPTCHA管理画面の Domains 一覧に、現在表示しているドメインが登録されていない
- reCAPTCHA v2 / v3 / Invisible のバージョンが混在 — v2用キーで v3 のスクリプトを読み込んでいる等
- Enterprise版のキーを無料版のスクリプトで使っている(またはその逆)
- secret_key(サーバー側で使う方)を site_key 側に貼ってしまった
対処法
1. site_key の値を確認
reCAPTCHA 管理画面を開き、対象サイトの設定から サイトキー(site_key)と シークレットキー(secret_key)を確認します。
- site_key: フロントエンドの
data-sitekeyやgrecaptcha.renderで使う - secret_key: サーバー側で検証APIを叩くときに使う
両者を取り違えていないか必ず確認します。
2. Domains 一覧に現在のドメインが含まれているか
管理画面の対象サイト → 設定 → Domains に、HTMLが配信されているドメインが登録されているかを確認します。サブドメインで配信している場合は、そのサブドメインも追加する必要があります。
- localhost: 開発用にlocalhostを追加することも可能
- サブドメイン:
example.comを登録すればwww.example.com等も対象(一部例外あり) - IP直接: 数値IPは登録不可
3. reCAPTCHA のバージョンを合わせる
| バージョン | スクリプト読み込み | HTML |
|---|---|---|
| v2 チェックボックス | https://www.google.com/recaptcha/api.js | |
| v2 Invisible | https://www.google.com/recaptcha/api.js | 同上 + data-size="invisible" |
| v3 | https://www.google.com/recaptcha/api.js?render=サイトキー | 不要(JSで grecaptcha.execute) |
管理画面で発行されたバージョンに合うHTML/JSを使います。
4. 実装の確認例(v2)
|
|
注意点
- site_key は公開情報で漏れても問題ない。secret_key はサーバー専用、絶対にHTMLに出さない
- ドメイン変更時は管理画面の Domains を必ず更新する
- 本番ドメインと開発ドメインで別のキーを使い分けると安全(誤って本番キーが開発に出回るのを防げる)
- Cloudflare等のCDN経由で複数ドメインから配信している場合、全ドメインを登録する