どうも、最近牛肉より豚肉派 システム担当 佐藤です。

12/4 のGIGAZINEさんの記事に以下のようなものがありました。

newCaptchaAnchor

http://gigazine.net/news/20141204-google-recaptcha/

 

誰でも一度は「イラッ!」ってしたに違いない、reCAPTCHAが一新されて、簡単にボタンをクリックするだけで
ボット判定できるらしいと。

これは試してみないと! ということで簡単に判定含めPHPでやってみました。

作業

まずは、登録というところですが、GIGAZINEさんの記事に書いてるので省略。

reCAPTCHAの管理画面に書いてある通り以下を記述

<head>タグの前に以下を追加

<script src="https://www.google.com/recaptcha/api.js"></script>
</head>

適当な場所に以下を追加

<form>
<div class="g-recaptcha" data-sitekey="{サイトID}"></div>
<input name="submit" type="submit" value="submit" />
 
</form>

普通にreCAPTCHA管理画面に書いてるの貼っただけです。すると、以下のものが表示されました。

Screenshot_2

参考の記事だと表示していた文字が英語だったのでドキドキしてましたが、日本語で「私はロボットではありません」と表示されてますね。

これをクリックするだけでいいようです。 ためしに何度かクリックしていると、いつも通りのあの読みにくい文字のパターンも出ました。

Screenshot_1

何度もやったので怪しまれたみたいですね。

さて、管理画面内の説明文章を読んでいくと、判定はPOST値(名前:g-recaptcha-response)で送られる値と、管理画面にあるsecret keyを元にAPIに投げて行うようです。

簡単に確認してみました。

$apiUrl = 'https://www.google.com/recaptcha/api/siteverify?secret={SECRET KEY}&amp;response=' . $_POST['g-recaptcha-response'];
$responceData = json_decode(file_get_contents($apiUrl));
if ($responceData->success) {
    // OK
} else {
    // FALSE
    // $responceData->error-codes でエラー内容。
}

おおっ。結果が返ってきますねー。

スマホでもやってみましたが、問題無く使えました。

感想

これだったらイライラ全然せずにできそうですね。
どこかで使ってみようかと思います。