Node-REDを使ってノーコーディングでLINE botを作ってみよう!! (04_オウム返しbotをつくろう)

#はじめに
Node-REDを使ってLINE botを作る記事は調べればでてきますが、最初から最後までノーコーディングで作成している記事はなかったのでここで解説していこうと思います。

データの内容からなるべく詳細に記載しようと思うので、必要な部分のみ参考にして下さい。

当該記事はオウム返しbotの作成方法解説のみになります。
以下目次のリンクより必要記事にアクセスして下さい。

#目次
[01_環境構築編](https://qiita.com/VulpeS404/items/da196c87541b6af9214c)
[02_基礎編～LINE bot作成におけるNode-REDのデータの流れ～](https://qiita.com/VulpeS404/items/ee9e719f37ae535571fd)
[03_Node-REDからbotユーザーにメッセージを送信しよう](https://qiita.com/VulpeS404/items/c2e0db947db1b4c6229c)
[04_オウム返しbotをつくろう](https://qiita.com/VulpeS404/items/640b075b0a9eaaad249f)
[05_LINEから受信したデータの詳細を見てみよう](https://qiita.com/VulpeS404/items/554119209a4469130b98)
[06_ユーザーから送られたメッセージを判定して返事を返そう](https://qiita.com/VulpeS404/items/308f599660a79d2c457e)
[07_Node-REDとCloudantDBを連携させよう](https://qiita.com/VulpeS404/items/0d73963177d5829bc5a9)
08_ユーザーとやりとりできるbotをつくろう
09_おすすめの〇〇を紹介するbotをつくろう
[99_各nodeの解説まとめ](https://qiita.com/VulpeS404/items/0ce3057451d18f4d87ec)c)

#4. オウム返しbotをつくろう概要
前回はNode-REDを利用し、botを友達登録しているユーザーにメッセージを送信してみました。
今回はユーザーからメッセージを受信し、その内容をそのままユーザーに返信するbotを作成します。
ユーザーから受信したデータの詳細については次回の記事で解説します。

本記事は以下の順番で解説していこうと思います。
1．Node-REDの設定最終形
2．各ノードの説明
3．実行してみよう
4．常に同様のメッセージを返信する場合

#4-1. Node-REDの設定最終形
ユーザーから受信したメッセージをそのまま返すためのNode-RED設定の最終形は以下のような形になります。
前回同様ノード2個のシンプルな形になります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/0d3b9244-ce32-9033-8003-29872d2cb734.png)

#4-2. 各ノードの説明
次に上記ノードの設定等詳細を説明させて頂きます。

###1. http inノード
パレットのネットワークに格納されているhttp inノードについて解説します。
このノードはwebを通じてデータを受信するのに使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/714dad7f-b63e-19ca-94d1-44b9e8f7c3a3.png)

実際に配置すると以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/7f101fbd-1fe8-5511-2989-d662a4294234.png)

ノードをダブルクリックして中をみてみましょう。
メソッドですが、こちらは書くと長くなりそうですので[こちら](https://qiita.com/kanataxa/items/522efb74421255f0e0a1)の記事等参考にして頂ければと思います。
URL欄にはデータ取得元のURLを記載します。
名前を設定するとノードに書かれている名称（画像ではhttp）が変更されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/83ec72b0-182f-3c1a-c8f8-9120950e4a6a.png)

今回は具体的に以下のように設定します。
メソッドは今回の場合POSTを使用します。
URLには[01_環境構築編](https://qiita.com/VulpeS404/items/da196c87541b6af9214c)で設定したwebhookの{{任意}}の部分になります。
https://{{リソース名}}.mybluemix.net/{{任意}}
なぜここだけかというと"https://{{リソース名}}.mybluemix.net"の部分は既に現在作成しているNode-REDプログラム自体を表すからです。
その中の設定したcallbackに情報が入ってくるようwebhookで連携しているので、その階層部分のみを指定するイメージです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/1045773e-bd61-a4e3-24cc-4c23e79b44fb.png)

###2. Replyノード
次にパレットLINEに格納されているReplyノードについて解説します。
これはメッセージを送信したユーザーに対し、返信するためのノードです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/806b0d8e-dd6c-b73f-91aa-c0d73e49d479.png)

ノードをダブルクリックしてみましょう。
ここで設定が必須なのは以下の2つです。
・Secret
・AccessToken
前回のPushノードでは必要だったユーザーIDが不要になります。
ReplyMessage欄にメッセージ内容を入力すると、メッセージを送信したユーザーに対し設定されているメッセージを常に返信します。
空白にすると受信したメッセージをそのまま返信します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/772e693b-9742-f1db-97a1-ec7981919fdd.png)

今回は以下のように設定します。
オウム返しbotなのでReplyMessage欄は空白にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/4fb53d2b-6acf-1b4d-833a-7ac4c6d04891.png)

#4-3. 実行してみよう
各ノードの設定が完了したら2つのノードを繋ぎ合わせ、右上の"デプロイ"ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/406d622b-2dc1-3277-d6f9-ea7a9233f77d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/0e3de13c-6ce0-4def-da08-ef99e48e24d4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/c1c52309-efba-bf41-7783-bf86583ea5cd.png)

それではLINE bot宛にメッセージを送ってみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/38a78653-473d-9c7d-7473-43fb2754425f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/3cdd8413-c23e-be0a-c624-58ef4fa69967.png)


以下のように何を送っても同様のメッセージを返してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/990332bd-c091-ad7f-2a01-f970b74481eb.png)

以上でオウム返しbotの完成です。

#4-4. 常に同様のメッセージを返信する場合
ReplyノードのReply Message欄になにか記載するとどうなるかも試してみましょう。

Replyノードを以下のように設定しデプロイします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/c0284f39-e937-65a6-76d3-23007db03b9b.png)

先程と同じように送信してみます。
そうすると以下のように何を送っても、Reply Messageに設定した内容を返してきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395385/e1e53aa2-1f8f-e0fe-26a9-3c6578d9540f.png)

#おわりに
以上がオウム返しbotの作成方法でした。
次回はユーザーから送られたメッセージを判定して返事を返す方法を解説します。