マニュアルの場所を教えてくれるbotを作成し、探す時間を短縮してみた

はじめまして！未経験で突然システム部門に配属されあたふたしている会社員です。
これまでプログラミングなんか触ったこともなく、専門的な勉強をしたこともないのにある日突然システム部門に配属となりました。
これは何かしないとまずいということで何かと出くわすAPIについてちょっと勉強したところ、このAPIを使うとLINE botが簡単に作れるのだとか。ということで早速挑戦してみました！
# ツール紹介
Make
SSSAPI
Googleスプレッドシート
LINE
# 何作る？？
簡単に作れるとはいっても何を作るんだと考えたところ・・・
配属されたばかりだしマニュアルを見たい！
だけどマニュアルが多すぎて探すのが面倒…
幸い保存場所はまとまっている。しかもオンライン上に保管しているから簡単に検索出来れば楽になるしスマホで見れる！
ということでマニュアルのありかを教えてくれるLINE botを作成することに。
 # 結果 
できた！
![ezgif-1-24aac30722.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/b4c656e3-8138-6009-fa7e-226afd361f34.gif)
このようにマニュアル名を送ることで、保存場所を返してくれるbotが作成できました！
# 手順
①Googleスプレッドシートでリスト化
②SSSAPIを使用し、GoogleスプレッドシートをAPI化
③MakeでLINE botのシナリオ作成
## ①Googleスプレッドシートでリスト化
画像のように簡易的な表を作成（マニュアル名やアドレスは仮です。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/0cb180b3-2bf3-55b7-25d3-d87a4a3cf13b.png)
## ② SSSAPIを使用し、GoogleスプレッドシートをAPI化
SSSAPIはGoogleスプレッドシートをAPI化しJASON形式で返してくれるサービスです。
制限はありますが無料で使用することもでき、有料プランも280円～となっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/0cce2c2e-afab-8db6-70e9-20d16e3157be.png)
使い方もシンプルで、①使用するスプレッドシートのURLを貼り付け、②スプレッドシートの共有設定に指定されるアカウントを紐づけるだけ。
![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/ca8bab2e-a743-bc6f-33ff-a545e73d6e00.png)
正しくできればStatusがreadyの表記になります。
![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/f8ee607b-a21a-2b39-d06a-390d79f538b6.png)
問題があればStatusはwarnと表記されます。ちなみに無料プランだと50行までの制限があるため、warn表記になり、50行目までがAPI化されます。
![図14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/1156d954-41c7-869a-ae9a-add9c8b94980.png)
API化されたデータは下記のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/8a0e3d08-a656-3715-6e83-047902e213a5.png)
このままではすべてのリストが抽出されているのでほしいマニュアルを指定してあげる必要があります。
指定のマニュアルを抽出するためには下記の方法があります。
①URLの最後に    **/”A列の値”**   を付ける
＜例＞　API URL：https://api.sssapi.app/kicfn7CTP_XXXXXXXXXXXX **/1** 
最後に    **/”A列の値”**   を付けるとそのデータだけが抽出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/2a5bc0c3-b851-3aec-6aa5-f86d0e4e29cb.png)
②フィルターの設定
＜例＞　API URL：https://api.sssapi.app/kicfn7CTP_XXXXXXXXXXXX **?filter__name__exact=”nameの値”** 
URLの最後に  **?filter__name__exact=”nameの値”** を付けることでで完全一致でフィルターがかかります。
※ちなみに、 **exact** を **contains** に変えることで条件を部分一致にすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/df2f219d-c2a1-1b38-54b6-f2e45bb84d02.png)
これでSSSAPIの準備は完了です。
## ③MakeでLINE botのシナリオ作成
実際のシナリオです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/d1c3f685-15f1-62d6-064e-55c9bfc04ba1.png)
HTTPではAPIを受け取ったメッセージと完全一致するようにQuery StringのNameに **filter__name__exact** 、LINEで受け取ったメッセージを反映するためにValueに **Message.Text** を入れています。
![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/f2115523-9d15-83b4-6a75-b775a5ced0b5.png)
LINEのReply Messageでは単純にアドレスを返すように指定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668023/3f0310e0-90a2-a113-1f07-b1fa7def008b.png)
# 最後に
思っていたよりも遥かに簡単にLINE botを作成することができました。
かなり質素なbotですが、リストさえあれば同じやり方で応用もできるので色々なことに使えるかなと思います。
ここから肉付けしていきどこまで実用的なbotにできるかが課題ですね。