GASでぐるなびAPIをたたいてみる!その4

スポンサーリンク

こんにちは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);//スプレッドシートへ追加
}

 

コメント