店の情報をサクッと調べてくれる助手が欲しかったので作ってみた件（その１）

こんにちは。
アミューズメント系ユーザー企業で社内SEやっています。
今回は小売業の本部組織でありがちな、<b>店情報探すのめんどくさい問題</b>を時短するためのツールを~~サクッと~~作ってみました。
**→サクッと作れませんでした…。**

## とある日の風景

私の部門はシステムサポートを兼任しているので、システムトラブル発生時にお店から良く問い合わせが入ります。

<font color="blue">のぐち：「はい。情報システムのぐちです。」</font>
<font color="orange">ららさん（仮名）：「お疲れ様です。○○店らら（仮名）です。」</font>
<font color="blue">のぐち：「お疲れ様ですー。どうされましたー？」</font>
<font color="orange">ららさん（仮名）：「あの、ファイルサーバーの○○ファイルが開けないんです。」</font>
<font color="blue">のぐち：「○○ファイル？それ、どこから開いてます？」</font>
<font color="orange">ららさん（仮名）：「デスクトップにある、○○のショートカットを開くんですけど、中にファイルが無いんです。」</font>
<font color="blue">のぐち：「（言ってることがよく分からん。。。）」</font>
★この段階で端末情報調べだす。
**～～～ここから～～～**
★デスクトップからファイルサーバーのショートカットを開く。
<font color="blue">のぐち：「ちょっと状況確認したいので、お店の端末にリモートでつないでもいいですか？」</font>
<font color="orange">ららさん（仮名）：「はい。お願いします。」</font>
★ファイルサーバー内から、機器一覧のファイルがあるところまで移動。（4階層くらい。レスポンス遅い。）
<font color="blue">のぐち：「このフォルダって、昨日までは中身ありました？（最新のファイルはどれだ～…？）」</font>
<font color="orange">ららさん（仮名）：「前回見た時はみれてたんですけど…。普段はあまり開かないフォルダなので、いつくらいだろう。2ヶ月くらい前かなぁ。」</font>
★機器一覧のファイル開く。（Excelファイル。起動遅い。）
<font color="blue">のぐち：「そうなんですね。このファイル見る指示は最近業推から来たものなんですか？」</font>
<font color="orange">ららさん（仮名）：「はい。2日前かな？の業務指示で来てました。」）</font>
★シート選択。店名でデータ検索。対象機器のカラムを確認。IPアドレス特定。
<font color="blue">のぐち：「なるほど。これ、いつまでにやらなきゃいけない業務ですか？」</font>
<font color="orange">ららさん（仮名）：「一応期限は、○○日までになっています。ただ土日はあまり時間取れないので、今日やってしまいたいんですよね。」</font>
★リモートツール起動。IP入力、接続。
<font color="blue">のぐち：「なるほどですね。っと、今リモートでお店のパソコンに繋ぎました。このフォルダですかね？・・・」</font>
**～～～ここまで、実は時間稼ぎの雑談～～～**

上記のような感じで、基本はリモートで店の機器に繋いで調べるのですが、
必要なIPアドレスなどの機器情報を取得する操作に時間が掛かるので、毎回雑談しながら場を繋いでいたりします。
**場合によっては2-3分かかる**のもザラなんですよねぇ。
といった経緯から、このやりとりを時短すべく今回の開発スタート！

## LINEWORKSの罠にハマるが、とりあえずα版完成。

今回、社内向けのツール想定だったので、LINE WORKS 使ってみたのですが、
**認証情報の取得方法が LINE Messaging API と全く異なっており、ハマりにハマりました。**
**開発期間の8割はLINEWORKSの仕様調査**だったのですが、その経緯は、また別の機会に記事にしたためようと思います…。


### 使ったもの

**・ Integromat**
今回はコーディングツールとしてIntegromatを利用しました。
選定理由は、各モジュールに入力されるデータが可視化しやすい点と、
スプレッドシート上の検索結果をそのままデータとして、他モジュールに渡せる点で決めました。
　
**・ LINE WORKS Developer の Bot機能**
今回は会社で利用している標準のSNS LINE WORK をインターフェースとして利用しました。
使い慣れているので、LINE WORKS 上で Bot 作って、店名を投稿すると、
お店の情報がレスポンスとして得られるような機能を作ります。

**・ Google スプレッドシート**
お店の情報は、社内の店管理システム的なもので一元管理されているのですが、
自社開発システムとなり、外部から接続できるAPIなんてないので、
システム内のデータをCSVで抜いて、Google スプレッドシート上にアップします。
Integromat のスプレッドシートのモジュールは、**対象スプレッドシートのカラム情報を全て変数として利用できるようになる**ので超便利です。

***
### こんな動きをします。

店のコードと店名どちらを入力してもデータを検索できる仕様にしました。
![スライド7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471853/90ec26e6-42b4-dc2a-a8e0-3193ce98e007.png)

***
### フローはこんな感じ。

![スライド6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471853/c1c4b987-67c9-f9ac-1c7c-59634e442361.png)
***
## α版リリースしてみて感想聞いてみた。。
<b>Q：みた感じどーですか？</b>
・これ、調べた結果から**そのままお店に電話できるんですね。**便利！（情シスパートナーTさん）
・さっとお店コード調べるときに便利ですね！（情シス社員Uさん）

<b>Q：何かこうしてほしいとかありますか？使えそうですか？</b>
・これ、お店には展開するの？**景品移動の時とかに送付先店舗の住所とか調べる**から、便利だと思うよ。（情シスマネジャーSさん）
→ 確かに住所は自分もよく調べるな。**よし、組み込もう！**

## 今回の総括：LINEWORKのBOT開発は色々大変。
ほんと、これに尽きるって感じです…。

### 1．調べるにしても情報が無い、という話
今回、LINE WORKS 使ってみてた所感ですが、Qiitaとか調べてみてもノウハウとかの情報がほとんどないんです。
LINE Messaging API はググればゴロゴロ情報出てきたのに…。
企業向けツールということで情報が表に出ていないというのもありますが、
**やっぱり人気のあるツールをインターフェースに据えたほうが情報は得やすいなぁ、**と感じました。

### 2．まだまだ開発は続く…。
今回できたところまでを一旦使ってもらいましたが、シナリオ的な応答ができるようになると、
**広げすぎず痒いところに手が届く**といったようなところを落としどころに開発進めたいと思います。
現状想定している追加開発の範囲は以下の通り。

**・ 機器情報検索機能**
　現在は単純にWebhookから入力された店コードor店名に紐づいた、店舗情報を返すのみなので、
　今後、機器情報or店情報の分岐を作成して、**必要な情報を検索してレスポンスさせるようにします。**

**・ システム名とアイコン**
　分かりやすいっちゃ分かりやすいんですが、面白味が無いので、アイコンとシステム名を変えます。

**・ トークンの再発行機能。**
 　現在、**アクセストークンが24hで時間切れしてしまう**ので、定期的にトークン更新する仕組みが必要です。

### 3．Qiitaで対話式の記事微妙
書いてみてから気づいたんですが、Qiitaは文字の右寄せできなさそうなので、対話式の記事微妙ですね。
テーブルとか画像をうまく駆使しないと表現できなそうです。