結論
- 公式サイトで登録をする*1
- reCAPTCHA の gem を入れる
- 環境変数に
RECAPTCHA_SITE_KEY
とRECAPTCHA_SECRET_KEY
の値を設定する - formタグ の中に
<%= recaptcha_tags %>
を挿入する - 結果を得る
手順
1. 公式サイトで登録をする
特に難しいところはないと思います。注意する点は、Key Settings
の Domains
のところに使用するサイトのドメインを正しく入力する点です。localhost
と 127.0.0.1
は異なるものとして判断されます。ポート番号は必要ありません。
Site key
の値と Secret key
の値を後ほど使います。
2. reCAPTCHA の gem を入れる
こちらも特に問題ないかと思います。Gemfile
に gem 'recaptcha'
と書いて bundle install
しましょう
3. 環境変数に RECAPTCHA_SITE_KEY
と RECAPTCHA_SECRET_KEY
の値を設定する
dotenv
などを使って環境変数に RECAPTCHA_SITE_KEY
と RECAPTCHA_SECRET_KEY
の値を設定します。前者に「1.」で取得した Site key
を設定し、後者に Secret key
を設定します。
4. formタグ の中に <%= recaptcha_tags %>
を挿入する
特に問題ないかと思います。たとえば以下のような形になるかと思います。コントローラとアクション(メソッド)の組み合わせはいい具合に調整して下さい。
<%= form_with url: foobar_path, method: :get do |form| %> <%= form.text_field :your_text_field %> <%= recaptcha_tags %> <%= form.submit 'ボタンの名前' %> <% end %>
上記を Webブラウザ 上で見ると以下のような形になるでしょう。
5. 結果を得る
上記のフォームを受け取ったコントローラに、verify_recaptcha
という変数が渡っています。この変数には true
または false
が入っています。前者が入っていれば認証成功、後者が入っていれば認証失敗です。この値を使って条件振り分けなどをするとよいと思います。
補足
gem の 公式ドキュメント や、reCAPTCHA の 公式ドキュメント が充実していますので、そちらを一読しておくとよいでしょう。
*1:Google アカウント が必要