サポート » プラグイン » Contact Form 7のRest APIでの投稿

  • 解決済 idarosite

    (@idarosite)


    WP初心者なので適切な質問でなければすみません。よろしくお願いします。

    Contact Form 7でRest APIが対応されていると書かれていましたが、適当な投稿方法が紹介されている記事を見つけられなかったので、ソースを見つつ試していました。

    http://localhost/wp-json/contact-form-7/v1/contact-forms/4/feedback
    へ通常ContactForm7を設置時のinputタグの内容を参考にしつつyour-name,your-email,your-subject,your-message,_wpcf7_nonceを付けてPOSTすると投稿できたようなのです。が_wpcf7_nonceを抜くとspamだというstatusが返ってきました。

    {
    “into”: “#”,
    “status”: “spam”,
    “message”: “There was an error trying to send your message. Please try again later.”
    }

    _wpcf7_nonceはワンタイムトークンのようなものだと思うのですが、RestAPIの場合これはどうやって取得しておくのでしょうか?もしくは根本的に使い方を間違えているのかご教示いただけないでしょうか。よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Takayuki Miyoshi

    (@takayukister)

    おっしゃるとおり、_wpcf7_nonce はワンタイムトークンのようなもので、フォーム送信が正しくそのサイトのコンタクトフォームから行われたことを確認する目的で付けているものですので、サイトの内外問わず REST API 経由でフォーム送信を行うような用途で使いたい場合には逆に邪魔なものになります。そういう使い方を勧めはしませんが、もし意図してそうするのであれば、wp-config.php ファイルに

    define ('WPCF7_VERIFY_NONCE', false);

    を追加することで nonce の検証を無効化できます。

    ご回答ありがとうございます!
    REST APIで無効化確認できました。
    なるほどWPのREST API自体が過渡期のようですもんね、注意して検討してみます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。