##「公園横にあるさあ…。」「見たことありますね、そういえば」
新人営業の時代、お客さまとの商談中に口座書類記載の為に聞かれて慌ててスマホを探した経験があります。
今回はプログラミング経験ゼロの私がLINE Botのプロトタイプ作成に初挑戦しました。
まだまだ改善点が多いため、開発ポイントと今後の課題を記載しています。
出来ること
LINEのトーク画面で検索したい金融機関名をひらがなで入力すると金融機関とその支店それぞれの名称とコードを教えてくれます。
*途中送信も可能です。
画像: Gyazo
また、候補の金融機関が複数ある場合やデータが取得できなかった時は以下のようにエラーメッセージが表示されます。
画像: Gyazo
##使用ツール
・Heroku
・Node-RED v2.1.5
・LINE Developers
・BankCodeJP API(金融機関コードAPI)
##LINE Bot構造
LINE Botの構造は以下の通りです。
フロー画像: Gyazo
##処理手順
1.入力メッセージをAPIに連携し、検索結果を取得。
2.データサイズを変数として取得し、金融機関特定の成否を判定。
3.失敗した場合はエラー内容に応じてエラーメッセージを作成し、成功した場合は支店一覧を取得。
4.作成したメッセージをLINEにて回答。
LINE Botの改善点
絞り込み検索の実装
支店の絞り込みが実装出来ておらず支店一覧を表示するため、支店数の多い先への活用に難があります。
利用回数の制限
APIライセンスの関係で一日の利用回数に制限が有ります。
##次回に活かすポイント
APIキーの設定
API利用にあたり、APIキーの設定をしておらずアクセス制限を受けてしまいました。
複数回同じAPIを使用する際のdelay設定
このLINE Botは同じAPIへ短時間に2度接続しています。そのため、接続間隔が短くなっていることによりエラーメッセージが返されました。
今回は利便性が落ちますが2度目の接続時にdelay設定を行い解消しています。
配列内から複数要素を取得する
APIから各支店データをJSON形式で取得した際、1拠点毎にdata内に結果が格納されていました。
このままでは拠点の名称とコードをそれぞれ取得出来なかったため、以下の処理を実施。
1.dataの要素を取得したいので、dataをpayloadへ代入。
2. splitノードで分割し、取得したい要素をtemplateで取得。
3. joinで再結合。
参考:Node-REDクックブック
###まとめ
今回は初のLINE Bot作成という事で色々な方にご教示いただきながら何とか形にすることが出来ました。
新しい技術や知識をフル活用して試行錯誤する事の難しさを実感すると共に、その面白さも感じました。
さらなる改善が図れるよう自分の知識アップの為の勉強はもちろん、情報を収集する手段についても勉強していこうと思います。
閲覧ありがとうございました!