Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

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

Latest post

Google Classroom API でクラスの一覧を取得したい

自分が指導・参加しているクラスの名称とIDを取得するコードを試しました 下記 Code.gs では pageSize で 100 を設定していますが 必ず 100件 返ってくるとは限らないらしいです https://developers.google.com/workspace/...