MovableType.net のフォーム機能や MovableType.net フォーム では、Webhookを利用してデータを送信することができます。
このWebhookを利用して送信した先でエラーが発生して終了した場合、エラーが管理者(フォームの設定の「通知先メールアドレス」)に通知され一定回数を再送を試みる仕様になっており、エラーの状態はステータスコードのみで判断していました。
しかし、Google Sheetsをはじめ一部のウェブアプリケーションの実行環境では、エラーで終了した場合にもステータスコードが200しか返さないことがあるため、JSON形式でステータスコードを通知することができるように対応を行いました。
通知する場合には、HTTPヘッダーの Content-Type に application/json を指定して、httpStatusCode を含むJSON形式データを返してください。httpStatusCode が 200〜299 の場合には成功として、それ以外の数字の場合にはエラーとして処理されます。
スプリクトへの記述例は次のようになります。
{"httpStatusCode":500}
また、任意のキーを自由に追加することもできます。返されたJSON形式のデータはフォームの管理者(フォームの設定の「通知先メールアドレス」)に通知されるメールに記載されます。
{"httpStatusCode":500,"message":"データベースへの接続でエラーが発生しました"}
2024年5月2日より前の活用ブログのプログラムを利用している場合
活用ブログの記事「Webhook を利用してフォームの送信データを Google スプレッドシートに送る方法」のプログラムでは、上に書いた方法で詳細なエラーメッセージを返せるように書き換えています。
以前のプログラムでは、1つのGoogleアカウントで複数のフォームのデータをWebhookを使って保存しようとすると、エラーが発生してデータが保存されない問題が発生することがありました。
記事に掲載しているプログラムを更新していますので、2024年5月2日より前に設定している場合には、お手数ですがご確認のうえ、更新をお願いします。更新の際には設置した環境にあわせて secret の値を変更する必要がありますので、変更漏れのないようにご注意ください。