reCaptchaがターミネートされるっていうからv2に

Plesk上で稼働している古いMT5環境で使用中のreCaptchaプラグインそのままではv2に対応していないので、
ここを参考に導入しようとしてひと苦労した話。
http://blog.fairy-land.jp/2017/01/000070.html

1.以下のファイルをダウンロードし、pluginsディレクトリの中のMTreCaptchaを、中身ごとMovableTypeのpluginsディレクトリにコピーする。 MTreCaptcha.zip

2.MovableTypeでプラグインを設定する。

「ツール」→「プラグイン」の「MTreCaptcha」の設定で、「Site key」と「Secret key」を設定する。
「設定」→「コミュニケーション」の「コメント表示設定」で「CAPTCHAプロバイダ」を「MTreCaptcha」に設定する。
3.HTMLヘッダのテンプレートに以下を追記する。


対象のテンプレートは、当環境ではテンプレートモジュールの「HTMLヘッダー」だった。
4.コメントのテンプレートに以下を追記する。


    
<$MTCaptchaFields$>

MTreCaptcha.zipを解凍したフォルダMTreCaptcha/plugins/に展開された中身をサーバーの/path/to/mt/plugins/MTreCaptchaに展開してkeyを設定し、再構築後reCaptchaが表示されたことを確認。
しかし、reCaptchaを突破しフォームをsubmitすると以下のエラーが発生。

エラーが発生しました。

malformed JSON string, neither array, object, number, string or atom,

/path/to/mt/plugins/MTreCaptcha/lib/MTreCaptcha.pmのdebuglogが働いていなかったのでここを参考に以下のdoLogと差し替えし、MTのシステムログで何が起こっているか確認。

http://labs.m-logic.jp/2008/10/mt_plugin_debug.html

sub doLog {
    my ($msg) = @_;
    return unless defined($msg);

    use MT::Log;
    my $log = MT::Log->new;
    $log->message($msg) ;
    $log->save or die $log->errstr;
}

以下のログを確認。

'LWP will support https URLs if either Crypt::SSLeay or IO::Socket::SSL is installed. More information at . '

ここによると
https接続にLWP::Protocol::httpsが必要とのこと。

ここを参考にyum install perl-Crypt-SSLeay
https://www.pletk.com/movabletype2.html

# yum install perl-Crypt-SSLeay
# yum install perl-CPAN

ようやく動いた