Google Apps Scriptで作ったWebアプリのURLにアクセスしたらJSONを返すという仕組みを作りたくて試したコードです。
コードだけ先に書いておきます
APIを提供する側のコード
コード.gsfunction doGet () { var data = {key1:"value1"}; var json = JSON.stringify(data); return ContentService.createTextOutput(json) .setMimeType(ContentService.MimeType.JSON); } | 意訳返したいデータを用意して JSONに変換して 返す |
APIを利用する側のコード
コード2.gsfunction getData() { var url = 'https://script.google.com/macros/s/ID/exec' var response = UrlFetchApp.fetch(url).getContentText(); Logger.log(response); var jobj = JSON.parse(response); Logger.log(jobj['key1']); } | 意訳この機能がやること アクセス先のURLを指定して データを取得して ログに出す JSONをオブジェクトに変換して key1の値をログに出す |
以下は実際に試すときの手順です
APIを提供する側のコード
コード.gsfunction doGet () { var data = {key1:"value1"}; var json = JSON.stringify(data); return ContentService.createTextOutput(json) .setMimeType(ContentService.MimeType.JSON); } | 意訳返したいデータを用意して JSONに変換して 返す |
公開 > ウェブアプリケーションとして導入して
アクセスできるユーザを全員(匿名ユーザを含む)にして導入します
このURLにアクセスするとdataがJSONで返ってきます
APIを利用する側のコード
コード2.gs
function getData() { var url = 'https://script.google.com/macros/s/ID/exec' var response = UrlFetchApp.fetch(url).getContentText(); Logger.log(response); var jobj = JSON.parse(response); Logger.log(jobj['key1']); } |
意訳この機能がやること アクセス先のURLを指定して データを取得して ログに出す JSONをオブジェクトに変換して key1の値をログに出す |
実行 > 関数を実行 > getDataを選択します
許可を確認をクリックします
自分のアカウントを選択します
許可をクリックします
ログを見ると
このように取得できています
参考
Class ContentService
https://developers.google.com/apps-script/reference/content/content-service