お祝いの品を販売する私が、LINEbotに今日は何六曜か教えてもらった

## 六曜を気にする方って結構多い！
私自身は「お日柄」をあまり気にしたことはなかったのですが、接客業をしていて購入日のお日柄にこだわるお客様が結構多いことを知りました。
特にお祝いの品や高額品は大安に購入される傾向が強く、逆に仏滅は配送のお届け指定日でも避ける傾向があります。
そうなってくるとシフト作りや接客体制作りには、「六曜」も大切な要素の一つになってきます。
<details><summary>六曜とは？</summary>
「先勝」「友引」「先負」「仏滅」「大安」「赤口」の６つのことで、その日の吉凶を占う指標とされています。
もっと知りたい方はこちら

https://tokubai.co.jp/news/articles/1563

</details>
今日の六曜を確認するには、カレンダーを見たり、ググってももちろん良いですが、より身近な存在であるLINEが答えてくれたらありがたい！
その勢いで販売商品の豆知識やお手入れ方法などを教えてくれる機能があったらいいな～と思ったので挑戦することにしました。


## 【使用ツール】
・[Make](https://us1.make.com/)
・[LINE Developers](https://developers.line.biz/ja/)
・六曜のAPIをいただいたサイト(http://koyomi.zing2.org/)


## ◆実装されたもの
LINEで2022-04-22と日付を入れると…
![スクリーンショット (58).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/558b82e1-77a8-898f-2896-421bf3869568.png)
このようにそっけないですが、赤口と教えてくれました～！

以下がMakeの中身です。
![スクリーンショット (63).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/0f766cb4-bc14-ac1d-caa8-6fa80deea555.png)

丸い①～⑥のような、モジュールと言われるアイテムを増やしたり、組み合わせることで作りました。
## ◆簡単な手順
<details><summary>1.　①のLINEモジュールの作成</summary>

「+Add」からLINEのWatch Eventsを選択します。
[LINE Developers](https://developers.line.biz/ja/)に普段使っているアカウントでログインし、LINEbotを作ります。
</details>

<details><summary>2.　②のLINEモジュールの作成</summary>

LINEbotにテキストを送り、オウム返しをする設定をします。
②のLINE(Send a Reply Message)のモジュールを増やし、中身を画像のように設定します。
![スクリーンショット (71).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/eac352ba-ef9c-e7ab-6ee6-6839f26a4959.png)
LINEにテキストを送り、オウム返しできたら成功です。
①と②はこの時点では隣り合い、手をつないだ状態です。</details>

<details><summary>3.　③HTTPモジュールをの作成</summary>

③のHTTPモジュールを作り、①と②モジュールの間に入れます。
HTTPモジュールには使いたい情報のAPIを探してリクエストURLを貼ります。
Serialize URLはYESにしておくと、日本語などの複雑な文字もうまく解釈してくれるそうです。
Query StringのNameにはパラメータ名、ValueにはLINEのEvents Massege Textを選択します。（LINEで入力したテキストに応じた返答をさせるためです。）</details>

<details><summary>4.　④JSONモジュールの作成</summary>

④JSONモジュールのAddを押し、generateにJSONを貼ります。
リクエストURLにリクエストパラメータをいれて出てきたJSONです。</details>

<details><summary>5.　⑤のルーターの設定</summary>

LINEで存在していないテキストを入力した場合の返答の仕組みの下準備。
「TOOLS」の歯車マークからRouterを作ります。Routerは②と④の間に入れます。</details>


<details><summary>6．②LINEモジュールの再設定
</summary>

⑤Routerと②の間のスパナマークを押し、Set up a filter内のconditionにJSON内の欲しい情報のタグを選択します。
その下のEqual toはExsistに変更します。
![スクリーンショット (67).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/d9df7570-fb13-e6dd-f168-17043da0ed67.png)
</details>

<details><summary>7．⑥のLINEモジュールをクローンで作成</summary>

存在しないLINEテキストへの返答を設定するために、②のモジュールのクローンを作成し⑥のモジュールを増やします。
Routerと⑥の間のスパナマークを押しset up a filter内のYESを押します。
（②のモジュールではじかれたLINEテキストをすべてこちらで受け入れるためです）
⑥の内容を下記画像のように設定します。（Textコメントは自分で設定できます）
![スクリーンショット (66).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/ba49470a-e0e7-605b-6630-9172de584fb6.png)</details>

これで実装は完了です！






## 問題発生
![スクリーンショット (59).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/df590671-0ef9-ff04-c703-9204e94f40d5.png)

え…
LINEでなんの文字列を入力しても、赤口と出てきてしまいます。
![スクリーンショット (60).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/5293945c-5e88-f211-1db9-8f7ff307d5be.png)


原因を確認すると、HTTPモジュール内のQuery StringのValueを固定の月日に指定してしまっているためでした。
![スクリーンショット (55).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/f999adde-03ec-4eb6-8770-37915e9be685.png)


この部分をLINEのTextに変換すると解決する！と思ったのですが、
LINE Events Message Textをそのまま貼り付けるとエラーが出てきてしまうのです。
![スクリーンショット (70).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/f7ddb0d1-0bf9-df5c-02fe-4d685c71d04d.png)

この部分何を入れるんだろう…![スクリーンショット (65).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/e158b55f-7133-2be1-b1f0-e04ac4e98a07.png)

必須パラメータが複数ある場合のValue設定方法が分からず、「replace( ; ; )」で置換してみたり「toString( )」で変換してみたり、急にToolsをかましてみたり…
結果遠ざかっていきました。
![スクリーンショット (64).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2620147/26009d20-b29d-750c-9fb1-deec6d284714.png)
また、②ですべての文字列を受け入れてしまうので、⑥のモジュールの存在意味もなくなってしまいました。
今回はここでやむなく断念…

## ◆作成の上で苦労したポイント
APIについての知識がないままやったので、リクエストURLに必須パラメータを設定するところでつまずきました。
教えていただいたり検索をする中で少しずつ分かったような気がしますが、実際やってみるとできなかったり…
ちなみに、Makeは旧名称をIntegromatといい、何か検索するときはこちらの名前の方が情報が多いです。


## 作成を終えて
はじめてLINEbotを作ることができ、新しい階段を登った気分です。
やったことがないことを、最初から諦めたり避けるのではなく、まずは挑戦してみることが大事ですね。
今回は、LINEbotで「指定した日付の六曜を返す」「その六曜の意味や商品についての豆知識・お手入れ方法を教えてくれる機能を付ける」という目標があり製作しました。
現時点では、どちらの目標も達成することができませんでしたが、この悔しい気持ちをバネに改良していきます。