SOY InquiryでGoogleのreCAPTCHA v3プラグインがうまく動かない 投稿する

投稿者:kamo  投稿日時:2022-06-30 18:35:49
いつもありがとうございます。
フォームでreCAPTCHA v3プラグインがうまく動きません。
表示を追加するため、
https://saitodev.co/article/SOY_Inquiry%E3%81%A7Google%E3%81%AEreCAPTCHA_v3%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F
の記事のとおり、CMSでreCAPTCHAプラグインを有効にし、サイトキーとシークレットキーを追加、
confirm.phpのコードに
を追加しました。
バージョンは
最初CMSは3.2.17とInquiryは2.2.0環境で試したのですが画面右下にreCAPTCHAのロゴが表示されないので、
SOY CMSを 3.2.31 とInquiryは.2.2の最新に一旦アップして再度確認しましたが
表示ができていません。
プラグインの説明にはconfirm.phpとあったので
そのように記載にidを追加していますが
念のためform.phpにもidを入れてみましたが変化なしです。
何か設定を見落としていますでしょうか?
ご多忙のところ、恐縮です。解決策をアドバイス頂けたらと思います。
投稿者:齋藤毅  投稿日時:2022-07-01 05:48:51
reCAPTCHA v3プラグインの動作条件はアプリケーションページでないと動作しません。
もし、お問い合わせフォームをアプリケーションページ以外で設置した場合はreCAPCTCHAのロゴは出力されないことになります。

アプリケーションページであれば、
サイトキーとシークレットキー
が正しく入力されていれば、お問い合わせフォームの末尾にreCAPTCHA用のタグが自動で挿入されます。
reCAPTCHAのロゴが表示されるのはお問い合わせフォームページのみなので、の自動挿入もお問い合わせページのみです。

取り急ぎ、お問い合わせフォームにタグが自動で挿入されているか?のご確認をお願いします。
投稿者:kamo  投稿日時:2022-07-01 08:56:13
ページはSOYAppページでお問合せを作成しております。
ページのソースには追加でscriptなどの記述はされない状態です。
スタイルは個別指定していますので、念のため初期で用意されているテンプレートの
responsiveにスタイルを切り替えての表示を試しましたが結果は変化なしです。
これから別環境での設定も試してみます。
もしかしてページに問題があるかもしれませんので。
その結果をまたご報告いたします。
投稿者:kamo  投稿日時:2022-07-01 11:19:36
いつもお世話になります。
原因か?と思われる点がありました。
ページと連携するコードですが

フォームをページ側に埋め込み時のコードで
アプリケーションページのテンプレートに以下のように記述してください。
<!-- app:id="soyinquiry" app:formid="testContact" -->
ここにフォームが表示されます。
<!-- /app:id="soyinquiry" -->
------------
とあるのですが、reCAPTCHAが表示できていない問い合わせページの場合
この記述でフォームが表示されないため、その下に記述のある標準ページのコードで
ページに埋め込んでおりました。

アプリケーションページ用コードが機能しない原因が何がは不明ですが、
少し前から問い合わせをAPPページで
作成してもなぜかコメントとして扱われてしまっていたので
標準ページのコードで記載していたことを
テスト用に新しくフォームページを作成して思い出しました。

ただ、サイトでフォームページだけSOYCMSを利用している場合のページでは
ちゃんとアプリケーションページ用コードが機能して
reCAPTCHAが表示も正常にできたので、こちらで記述したページ内のコードでもっと
おかしな設定をしている部分があるのかもしれません。

引き続き調査してみます。
投稿者:kamo  投稿日時:2022-07-01 16:14:28
新しく上記テスト用にCMSとinquiryを最新バージョンでインストールし
PHP は7.4.28でSOY CMSを 3.2.31 とInquiryは.2.2上で確認しました。

お問合せページですが、
アプリケーションページのテンプレートに
<!-- app:id="soyinquiry" app:formid="contact1" -->
ここにフォームが表示されます。
<!-- /app:id="soyinquiry" -->
を記述しましたが、上記コードではやはりフォームが読み込めませんでした。

上記現象の原因はわかりませんが、標準ページ用のコードでは
フォームが読み込めるのですが、v3プラグインが機能しませんので、
今回のreCAPTCHA v3プラグインが効かない原因は
テンプレートに記載する埋め込みコードがアプリケーションページ用の
コードでないと機能しないのではないか?と思うのですが
いかがでしょうか?

とりあえず、プラグインは利用しないことにしておきます。
急ぎませんので、何かヒントがあれば後でお教えください。
今後ともよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-07-01 17:39:16
https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/reCAPTCHAv3/reCAPTCHAv3.php
こちらがreCAPTCHAのコードになるのですが、スクリプトの制御はアプリケーションページであるかとsoyinquiryを設定しているかのみで、それ以外の制御はありません。

考えられることは同じ拡張ポイントを使っているプラグインがreCAPTCHAよりも前に動作していることでして、他プラグインのインストール状況を見てみなければわかりません
投稿者:kamo  投稿日時:2022-07-01 19:04:00
ご多忙の中何度もすみません。
プラグインについては稼働しているサイトだとちょっとうまくないので
テストで新規サイトで初期設定にあるプラグイン以外は
reCAPTCHA v3プラグインのみでテストしていますが、
さらに初期設定のプラグインを解除し、
サーバー情報表示プラグインとreCAPTCHA v3プラグインのみ
にしてみましたが、結果は同じでした。
今回はプラグインなしで手動設定をしてみます。
お手数をお掛けしました。
投稿者:kamo  投稿日時:2022-07-02 06:17:52
追加で今後の参考にテストで分かったことを記載しておきます。
スクリプトの制御はアプリケーションページであるかとsoyinquiryを設定しているかのみで、それ以外の制御はありません。 
とのこと。このアプリケーションページの認識をさせる部分がどこかのバージョンで変わった?
ということはないでしょうか。
reCAPTCHA v3プラグインが正常に機能しているサイト2つとそれ以外の機能しないサイトを比較した場合の違い?と考えたのですが、機能したサイトは古くから運営をしていて、それをバージョンアップしてきているサイトで、機能しないサイトは、それよりもあたらしいバージョンからインストールをし利用しているサイトあるいは今回テストで新規作成して試したフォームページだということが今回わかりました。
昨日記載したとおり、機能しないお問合せページはアプリケーションページで作成しているのに、テンプレートに
<!-- app:id="soyinquiry" app:formid="contact1" -->
ここにフォームが表示されます。
<!-- /app:id="soyinquiry" -->
を記述しても、上記コードではフォームが読み込めず、コメント内の文字表示のまま。
しかし、そのアプリケーションページに標準ページ用のコードを記述すると今度はフォームが読み込めるのですが、v3プラグインが機能しませんのでした。
試しに機能しているサイトのアプリケーションページに標準ページ用のコードに書き換えてみたら、404ページが表示されました。
以上、何か今後の参考になれば幸いです。
投稿者:齋藤毅  投稿日時:2022-07-02 06:24:17
ご連絡をありがとうございます。
本件を開発環境の一番新しいバージョンで試しているのですが、症状は再現せずにお問い合わせフォームは出力されています。
再現しないので今回の症状のアタリを付けられずにいます。
投稿者:kamo  投稿日時:2022-07-02 06:37:37
ご多忙のところ、お手間を取らせまして申し訳ございません。
reCAPTCHA v3プラグインを使わなくてもページにフォームが表示できればよいので、こちらの環境のサーバーの問題かもしれません。
今後もっとはっきりした情報がわかればお伝えします。ありがとうございました。
投稿者:kamo  投稿日時:2022-07-04 15:03:26
いつもお世話になっております。

サイトのアプリケーションページでのコードとreCAPTCHA v3プラグインの件、
大変お手数をお掛けいたしました。
別メールにて
こちらの操作設定のミスが原因で機能しなかったことをお教えいただき感謝いたします。

私のようなミスをしないように以下を記載いたします。
----------------------
ページ詳細(SOYAppページ)アプリケーションの欄で
SOY inquiryを選んでテンプレートの保存ボタンでは設定が保存されない。
アプリケーションの箇所は必ずページ下にあります更新ボタンを押す必要がある。
--------
ちゃんと更新を押すとフォーム読み込みコードのAPPページ用コードで
フォームが表示され、reCAPTCHA v3のプラグインも動作します。

大変お手数をお掛け致しました。
今後ともよろしくお願いいたします。
ログインして投稿する