こんにちはIT初心者のうえはらです。
ぐるなびウェブサービスでエリアマスタと都道府県マスタを前回取得したので、その他のマスタを取得したGASプログラムです。
中身は同じなんですけど、KeyIDの参照を変えてみました。
公開するときに毎回「*」に変更するのは面倒だな~と思っていました。以前どこかのサイトで、「ファイル」→「プロジェクトのプロパティ」→「スクリプトのプロパティ」にアクセスキーを登録して、そこから参照するようにしましたのを見ていたので、同じようにしようと思い、四苦八苦しました。
「ファイル」→「プロジェクトのプロパティ」に「ユーザープロパティ」があるので、初めはそこに登録して、
var KeyID = PropertiesService.getUserProperties().getProperty('GurunaviKeyId')
↑でユーザープロパティを呼び出そうとしたんですが、なぜかエラー。デバッグしてみると、[KeyID = Null]となってる。う~ん、なんで?。色々調べたけどわからん。
じゃあ、「スクリプトのプロパティ」でやってみよう!
うまくいった!なんで?。まぁ、できたので、深く考えずに進みましょう。
ちょっとレベルが上がってきたら、ちゃんと調べてみます!
エリアLマスタ取得
function AreaL_Get() {
var KeyID = PropertiesService.getScriptProperties().getProperty('GurunaviKeyId');
var url = 'https://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/?';
url = url + 'keyid=' + KeyID;
url = url + '&format=json';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var intNum = Object.keys(json.garea_large).length;//jsonの要素数取得
var arrArea = [];//配列の変数作成
for (var i=0;i<intNum;i++){//jsonの要素数だけ繰り返す
var A = json.garea_large[i].areacode_l;
var B = json.garea_large[i].areaname_l;
var C = json.garea_large[i].pref.pref_code;
var D = json.garea_large[i].pref.pref_name;
arrArea.push([A,B,C,D]);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('エリアL');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(1,1,rows,cols).setValues(arrArea);//スプレッドシートへ追加
}
エリアMマスタ取得
function AreaM_Get() {
var KeyID = PropertiesService.getScriptProperties().getProperty('GurunaviKeyId');
var url = 'https://api.gnavi.co.jp/master/GAreaMiddleSearchAPI/20150630/?';
url = url + 'keyid=' + KeyID;
url = url + '&format=json';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var intNum = Object.keys(json.garea_middle).length;//jsonの要素数取得
var arrArea = [];//配列の変数作成
for (var i=0;i<intNum;i++){//jsonの要素数だけ繰り返す
var A = json.garea_middle[i].areacode_m;
var B = json.garea_middle[i].areaname_m;
var C = json.garea_middle[i].garea_large.areacode_l;
var D = json.garea_middle[i].garea_large.areaname_l;
var E = json.garea_middle[i].pref.pref_code;
var F = json.garea_middle[i].pref.pref_name;
arrArea.push([A,B,C,D,E,F]);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('エリアM');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(1,1,rows,cols).setValues(arrArea);//スプレッドシートへ追加
}
function AreaS_Get() {
var KeyID = PropertiesService.getScriptProperties().getProperty('GurunaviKeyId');
var url = 'https://api.gnavi.co.jp/master/GAreaSmallSearchAPI/20150630/?';
url = url + 'keyid=' + KeyID;
url = url + '&format=json';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var intNum = Object.keys(json.garea_small).length;//jsonの要素数取得
var arrArea = [];//配列の変数作成
for (var i=0;i<intNum;i++){//jsonの要素数だけ繰り返す
var A = json.garea_small[i].areacode_s;
var B = json.garea_small[i].areaname_s;
var C = json.garea_small[i].garea_middle.areacode_m;
var D = json.garea_small[i].garea_middle.areaname_m;
var E = json.garea_small[i].garea_large.areacode_l;
var F = json.garea_small[i].garea_large.areaname_l;
var G = json.garea_small[i].pref.pref_code;
var H = json.garea_small[i].pref.pref_name;
arrArea.push([A,B,C,D,E,F,G,H]);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('エリアS');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(1,1,rows,cols).setValues(arrArea);//スプレッドシートへ追加
}
大業態マスタ取得
function CategoryL_Get() {
var KeyID = PropertiesService.getScriptProperties().getProperty('GurunavieyId');
var url = 'https://api.gnavi.co.jp/master/CategoryLargeSearchAPI/20150630/?';
url = url + 'keyid=' + KeyID;
url = url + '&format=json';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var intNum = Object.keys(json.category_l).length;//jsonの要素数取得
var arrArea = [];//配列の変数作成
for (var i=0;i<intNum;i++){//jsonの要素数だけ繰り返す
var A = json.category_l[i].category_l_code;
var B = json.category_l[i].category_l_name;
arrArea.push([A,B]);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('大業態');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(1,1,rows,cols).setValues(arrArea);//スプレッドシートへ追加
}
小業態マスタ取得
function CategoryS_Get() {
var KeyID = PropertiesService.getScriptProperties().getProperty('GurunaviKeyId');
var url = 'https://api.gnavi.co.jp/master/CategorySmallSearchAPI/20150630/?';
url = url + 'keyid=' + KeyID;
url = url + '&format=json';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var intNum = Object.keys(json.category_s).length;//jsonの要素数取得
var arrArea = [];//配列の変数作成
for (var i=0;i<intNum;i++){//jsonの要素数だけ繰り返す
var A = json.category_s[i].category_s_code;
var B = json.category_s[i].category_s_name;
var C = json.category_s[i].category_l_code;
arrArea.push([A,B,C]);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('小業態');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(1,1,rows,cols).setValues(arrArea);//スプレッドシートへ追加
}


コメント