--- layout: old_post title: CAPTCHA webサービス「reCAPTCHA」を設置してみた - gem install recaptcha permalink: /tatsuya/show/347-captcha-web-recaptcha-gem-install-recaptcha ---

昨日「クロスドメイン通信について、調べて後で書こう」と書いときながら、その件は全力で右から左へ受け流しつつブログにCAPTCHAを付けてみました。

542401469 Bb990F588C O

というのも、最近思い直してブログにコメント欄を付けたので、勢いで気になっていた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版 で書いてるんですが、リンクが半角・全角で分割されるのが気持ち悪い。それ以外は気に入ってるので手放したくないんだけど、どうにか直せないかな?フォーマットのカスタマイズとかどこからやるんだろ・・・