LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2018年12月15日土曜日

Google Apps Script側でAPIを用意してJSONを返したい


Google Apps Scriptで作ったWebアプリのURLにアクセスしたらJSONを返すという仕組みを作りたくて試したコードです。


コードだけ先に書いておきます

APIを提供する側のコード

コード.gs
function doGet () {
    var data =  {key1:"value1"};
    var json = JSON.stringify(data);
    return ContentService.createTextOutput(json)
    .setMimeType(ContentService.MimeType.JSON);
}
意訳
 
返したいデータを用意して
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の値をログに出す





以下は実際に試すときの手順です


APIを提供する側のコード


コード.gs
function 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

最新の投稿

現在日時から四半期の開始日と終了日を知りたい

今の日時を取得して、現在の四半期の開始日と終了日を知りたくて書いたコードです。 コード.gs function myFunction() { const month = new Date().getMonth() + 1;// monthは0始まりなので+1 ...