--- layout: old_post title: CAPTCHA webサービス「reCAPTCHA」を設置してみた - gem install recaptcha permalink: /tatsuya/show/347-captcha-web-recaptcha-gem-install-recaptcha ---
昨日「クロスドメイン通信について、調べて後で書こう」と書いときながら、その件は全力で右から左へ受け流しつつブログにCAPTCHAを付けてみました。
というのも、最近思い直してブログにコメント欄を付けたので、勢いで気になっていたwebサービスのreCAPTCHAを付けてみたわけです。
これ→秋元@サイボウズラボ・プログラマー・ブログ: reCAPTCHA - キャプチャを利用した人力高性能OCROCR
reCAPTCHAサーバとの通信とか面倒かと思ったけど、gemのライブラリを使えばラクチンポだった。一応メモ
gem recaptcha 解説:http://www.loonsoft.com/recaptcha/
gem recaptcha インストール
まずreCAPTCHAのサイトでアカウントを作る http://recaptcha.net/whyrecaptcha.html
email入れてパスワード入れて・・・登録完了、で完了画面にでるPUBLIC_KEYとPRIVATE_KEYをメモしとく。で次にRuby用ライブラリを普通にgemからインストールする
gem install --source http://www.loonsoft.com/recaptcha/pkg recaptcha
完了、次はRailsアプリケーションの/config/environment.rbへ先ほどのキーを書く
RCC_PUB = "パブリックキー" RCC_PRIV= "プライベートキー"
準備完了。
/app/controllers/application.rb
以下のようにreCAPTCHAライブラリを組み込む
gem 'recaptcha' class ApplicationController < ActionController::Base include ReCaptcha::AppHelper
でコントローラへ validate_recap というメソッドを追加、認証が成功していればtrueを返してくれる
comment = Comment.new(params[:comment]) if validate_recap(params, comment.errors) then #成功時処理 else #失敗時処理 end
/app/helpers/application_helper.rb
ヘルパーも組み込む
require 'recaptcha' module ApplicationHelper include ReCaptcha::ViewHelper
CAPTCHAを入れたい場所に get_captcha() というヘルパーメソッドを置いて完了。
試してみる・・・・、一応大丈夫ぽいかな?しばらくこれで試してみよう。しかしあれだね、人力OCRサービスってアイデアは面白いし邪魔なだけのCAPTCHAが有意義に活用されると考えると楽しいけど、ちょっと難しすぎ?設置した自分でも読めない。。。
後はなんだろ?トラックバックくらいやっぱ付けようかな。
あ、あとこのブログ ectoのMac版 で書いてるんですが、リンクが半角・全角で分割されるのが気持ち悪い。それ以外は気に入ってるので手放したくないんだけど、どうにか直せないかな?フォーマットのカスタマイズとかどこからやるんだろ・・・