郵便番号から住所文字列を得る方法について、このフォーラムで紹介されている通り(確か去年まで)は、
'[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;
});
})();