目的
郵便番号の7桁を入力すると、それに対応する住所と読み方を表示する。
製作の理由
申請書類に住所や住所のカナを記載する業務がある。
読み方を郵便局のホームページから検索すると県、市、それ以下読み方がバラバラに表示されるため簡単にコピー&ペーストができない。
更に複数の住所情報を調べる必要があるのに、郵便局のホームページでは最初の画面に戻されてしまうため作業に手間がかかる。
また申込の意思確認で住所を正しく伝えなければならない事があり、その読み方が誤っていると再度確認して折り返すように言われてしまう。
常に持ち歩いているスマホからでも簡単に調べられると効率が良いと感じ、今回Node-RED とLINEBOTを使用して作成した。
利用したAPI:Zipcloud
動作①7桁の数字で郵便番号を入力した場合
動作②7桁の数字以外の入力をした場合
7桁の数字を入れるようにメッセージが表示される。
「Yahoo」の様に文字を入れても同様。
動作③存在しない郵便番号を入力した場合
フロー
①7桁の数字を判別する
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1806653%2F6d575013-50a9-d78e-24d3-1fdca8c79904.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4e223f01a8cee138568d03ce5bf5e970)
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1806653%2F8588f2f6-3a5a-11bf-e954-2e9a3d991076.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a62e02b8fec9a657d87b0cd77ebd8c6c)
chzipcodeというパラメータを設定し、それを100倍する事で001-0010の様な住所も判別できるように設定。
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1806653%2Fdb01296f-b1f1-3168-7bbd-2bcc3ed5051c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=bc4cbf60ce981bd499de23b4a659b2e7)
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1806653%2F95f5a8a3-ed6e-674c-9989-87ce099cea7c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=20b2d58ab4e797a92175874e2b773a96)
chzipcodeの値が1000000~1000000000の間の数値になっていれば、住所を探しにAPIへデータを送信する。
しかしと数字が7桁であると素直に判定に利用した方がバグにならないはず。
もっとスマートなやり方があれば教えてほしい。
②住所の存在をチェックする
resultsがnullであれば、住所が存在しないメッセージをLINEに返す。
存在していれば住所とカナを表示する。
終わり
初めてLINEBOTとAPIを利用したプログラムを作ったが、変数の定義が簡単である事に驚いた。
かなり古いプログラムを経験してきたため、宣言をしなくても使えてしまうので戸惑ったが慣れるとこちらの方が便利だと思う。
この機能を普段申請書類を出してくれるメンバーに渡したところ、便利なツールとの評価を得られた。