郵便番号から住所文字列を得る(2018年11月)

郵便番号から住所文字列を得る方法について、このフォーラムで紹介されている通り(確か去年まで)は、

'[http://api.zipaddress.net/?zipcode=](http://api.zipaddress.net/?zipcode=)'+'郵便番号 7 桁’

で取得できていましたが、ついに、利用しているAPI側でhttp でのアクセスもできなくなったようで、現在は https ・http共に失敗します。

(参考)郵便番号から住所を取得するプログラムについて 

.

そこで、本日(2018年11月)現在で動くものを、と、ヨチヨチデバッグしながら作ってみました。結果、全体的にイマイチな感じですが、一応動きます。

.

(利用サービス) 郵便番号データ配信サービス zipcloud   利用規約  http://zipcloud.ibsnet.co.jp/rule/api

(前提条件)

  • jquery.min.js
  • フォームに、郵便番号入力用フィールド 「zipcode」(文字列)
  • フォームに、住所文字列出力用フィールド 「adress」(文字列)

 

熟練の方々、是非突っ込み、リファクタリングお願いします。 

javascript

(function() {
  "use strict";
  kintone.events.on(['app.record.create.change.zipcode', 'app.record.edit.change.zipcode'], function(event) {
    var zipcode = event.record.zipcode.value;
    kintone.proxy(
      'http://zipcloud.ibsnet.co.jp/api/search?zipcode=' + zipcode,
      'GET',
      {},
      {},
      function(body) {
        var response = JSON.parse(body);
        var record = kintone.app.record.get();
        if (response.status == 200) {
          if(response.results != null){
            if(response.results.length > 0){
              var tmp = '';
              tmp = tmp + (response.results[0].address1 != null ? response.results[0].address1 : '');
              tmp = tmp + (response.results[0].address2 != null ? response.results[0].address2 : '');
              tmp = tmp + (response.results[0].address3 != null ? response.results[0].address3 : '');
              record.record.address.value = tmp;
              kintone.app.record.set(record);
            } else {
              record.record.address.value = '← 郵便番号を修正してください。_01(' + response.message + ')';
              kintone.app.record.set(record);
            }
          }else{
            record.record.address.value = '← 郵便番号を修正してください。_02(' + response.message + ')';
            kintone.app.record.set(record);
          }
        } else if (response.message) {
          record.record.address.value = '← 郵便番号を修正してください。_03(' + response.message + ')';
          kintone.app.record.set(record);
        } else {
          alert('郵便番号から住所を検索しましたが、失敗しました_04');
        }
      },
      function(body) {
        alert('郵便番号から住所の検索に失敗しました_05');
      }
    );
    return event;
  });
})();

 

 

私も以前の投稿を参考に試してうまくいかずに諦めてましたが、こちらの方法でちゃんと出来ました。

都道府県は分けた形で使わせてもらってます。

ありがとうございます!!

無料の郵便番号検索を探していて、このぺーじを見つけました。ちゃんと動きました。ありがとうございます。