見出し画像

Node-REDで問い合わせフォームと受け取りの仕組みを作ってみた

自分のホームページを公開して、数日経ちますが

やはりフィードバックを受け取れる仕組みが無いというのは少し問題があると感じています(もらえるかどうかは別です)

一応、メールアドレスだけは画像で表示していましたが…
メールを立ち上げてアドレスを入力してとなると面倒かもしれないです

このような形で連絡先を載せてはいました

この問題を解消すべく、問い合わせ送信フォームと通知用のLINEBotを導入してみた次第です

送信フォームと通知用LINEBot

内容はいたってシンプル

サイト内に設置してある問い合わせフォーム

サイト内に設置してある問い合わせフォームに入力して送信ボタンを押す

そうすると

通知された問い合わせ内容

自身のLINEに送信内容が通知されます

以上

当たり前にある仕組みですが、自分で作ってみると意外と大変
(つまり、ありがたいってことです)

Node-REDの構成について紹介

横並びの方がスッキリとした印象

問い合わせを処理する為のノードを追加しています

トップページ側のhtml内にある問い合わせフォーム

<form action="/result" method="post"></form>でタグ内の内容について"/result"に向けて送信します

<input type>内のnameが送信されるメッセージの名前になります
msg.payload.form_name といった具合

送信された内容を受け取るhttp inノード

送信された内容を受け取るアドレスになりますので適宜設定
(今回でいうと "/result")

LINEに通知として送信するために整形します

msg.payload に受け取った msg.payload.form_name と msg.payload.form_text を使って通知文を作り、上書きします

\n は改行

push message ノード

LINEBotのアカウント情報を適宜入力しましょう

LINE user id を特定する方法

問題にすらならないと思いきや、躓きましたので

何かの参考になれば幸いです

LINEから適当なメッセージによって受け取ったオブジェクト

何らかの形で(例えば/webhook等を使って)LINEからメッセージを受け取ってください

デバッグノードにて中身を見ると上記の図のようになっていますので
そのなかの userId が push message ノードの User Id or Group Id 欄に入ります

バックナンバーは私のサイトにもありますので

もちろん note 様より移動してもらっても結構でございます

一応紹介させてくださいませ

大体アクセスに失敗します故

無料のherokuサーバーを使っているので、スリープから起動する際に30秒程度必要で、エラーになります

割と致命的な気もします

何か手立てを考える必要がありそうです

この記事が気に入ったらサポートをしてみませんか?