GAS(Google Apps Script)からATND APIにアクセスする。
はじめに
Google Apps Script 勉強会 #1 前日っていうことで(もう当日ですが。。)、
たまには少し予習しておこうかと思った次第です。
で、たまたまTwitter経由で知った、こちらのエントリー。
GASからCacoo API にアクセスする - @ikikko のはてなダイアリー
の劣化コピーエントリをあげてみます。。
- Googleドキュメントでスプレッドシートを作って
- その上でGAS(Google Apps Script)を走らせて
- ATND APIの結果をスプレッドシートに展開してみよう
という企画です。
ソース(コメントいっぱい書いといたんで、そのまま読んでください)
function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ {name: "ATND検索", functionName: "myFunction"}]; ss.addMenu("スクリプト", menuEntries); } function myFunction() { // キーワードを入力 var keyword = Browser.inputBox("キーワードを入力してください。"); if(!keyword) { return; } // ATND APIに問い合わせ var response = UrlFetchApp.fetch("http://api.atnd.org/events/?keyword_or=" + keyword + "&format=json&count=10"); // ATND APIの結果をパース var eventSearchResult = Utilities.jsonParse(response.getContentText()); // スプレッドシートへの書き込み準備 var range= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1, 1); // スプレッドシートをクリア range.offset(0, 0, 11, 2).clear(); // スプレッドシート(ヘッダ)への書き込み var titles = ["タイトル", "ATNDのURL"]; for(var i=0; i<titles.length; i++) { range.offset(0, i).setValue(titles[i]); } // スプレッドシート(データ)への書き込み for(var i=0; i<eventSearchResult.events.length; i++) { var event = eventSearchResult.events[i]; // タイトル range.offset(i+1, 0).setValue(event.title); // ATNDのURL range.offset(i+1, 1).setValue(event.event_url); } }
デモ
このスクリプトは以下のURLで一般公開してありますので、コピーしてお試しください。
GAS_meets_ATND_API
GAS_meets_ATND_API(一発コピー用)