GASの勉強がてらやってみました。
近所のお店をずらっと書き出すとかに使えそうです。
出力件数の制限があるそうなので、そこはもうちょっと工夫しないと回らなさそうですが。
(for文でoffsetいじるとかになるかな)
githubはこちら。
https://github.com/ymk1t/gnavi_api
gnavi_api.gs
function myFunction() {
var gurunaviAPI = '*************';//取得したアクセスキー
var url = 'https://api.gnavi.co.jp/RestSearchAPI/20150630/?';
url = url + 'keyid='+ gurunaviAPI;
url = url + '&format=json';
// リクエストパラメータ
url = url + '&freeword=ラーメン';
var response = UrlFetchApp.fetch(url);
var json=JSON.parse(response.getContentText());
var jsonLength = Object.keys(json.rest).length;//ヒットした件数を取得する
var arrArea = [];//出力する値を入れるための配列
if(jsonLength < 1){
return;
}
for (var i=0;i<jsonLength;i++){
// 出力したい情報を配列に入れていく
arrArea.push([json.rest[i].url,
json.rest[i].name,
json.rest[i].id
]);
}
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = sheet.getSheetByName('シート1');
var rows = arrArea.length;
var cols = arrArea[0].length;
sheet1.getRange(3,2,rows,cols).setValues(arrArea);//スプレッドシートに書き込む
}
GASは初めて使いましたが、シートの書き込み処理が結構シンプルで嬉しい驚きでした。
1. 対象とするシートやセルを指定する
2. 書き込みたい値を配列に入れておく。
3. getRange().setValue()を使って決めた場所に配列の値を書き出す
ぐらいで動きますもんね。
APIの検索条件は冒頭のURLの文字列にパラメータを追加していくことでできて
出力についてはarrArea.pushのところで順番や内容を修正できます。
APIやGASの良い練習になりました。
補足
ぐるなびAPIはアカウント発行してアクセスキーを取得しないと動かないので利用になる場合は事前に登録しましょう。
また、期間の指定やアプリの登録が必要になりますが、自分はお試しの一時利用ということにして突破しました。