Google Apps ScriptでRest API

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、サイオステクノロジー技術部 武井です。今回は、Google Apps Scriptで超簡単なRest APIを作成したいと思います。

Google Apps ScriptによるRest APIとは?

Google Apps Scriptについては、前回、「Google Apps Scriptは超便利」のブログでご説明させて頂きました。このGoogle Apps ScriptはWebアプリケーションとして公開も可能です。ということは、JSONを返すようなRest APIも作成することが可能です。これができれば、例えば、「アレクサ、ヘルプデスクの未処理のチケット数を教えて」のブログでお話したAmazon Echoと組み合わせると、色々面白いことができそうです。

例えば、Google Apps Scriptで指定したユーザーのカレンダーをJOSNで返すRest APIを作成したとします。そのRest APIをLambdaから呼び出すようにすれば、Amazon Echoに「アレクサ、〇〇さんの予定を教えて」というと、その人の予定を答えてくれるようなスキルを作ることが可能です。

作ってみよう

超簡単なRest APIを作ってみたいと思います。メソッドはGET、クエリパラメーターにname=noriyukiみたいに名前を入れると、以下のJSONを返すのを作ってみます。

{
  greeting: "noriyukiさん、こんにちは"
}

プロジェクトを作成するところまでは、「Google Apps Scriptは超便利」のブログをご参考下さい。プロジェクトを作成したら、以下のコードを入力して下さい。

function doGet(e) { // (1)
  var name = e.parameter.name; // (2)
  var greeting = name + "さん、こんにちは";
  
  var json = { // (3)
    greeting:greeting
  }
  
  return ContentService
      .createTextOutput(JSON.stringify(json)) // (4)
      .setMimeType(ContentService.MimeType.JSON); // (5)
}

function doPost(e) { // (6)
  doGet(e);
}

以下、コードの説明になります。

(1)のdoGet関数は、HTTPのGETメソッドでリクエストされた場合の処理を記載する関数になります。

(2)は、クエリパラメーターを取得するところです。https://www.exapmle.com/script?name=ntakeiで指定された場合のときに、クエリパラメーターとして指定したnameの中身を取得する処理になります。

(3)は、JSONオブジェクトを生成しています。

(4)と(5)は、HTTPレスポンスを生成しています。ContentServiceのcreateTextOutputでHTTPレスポンスに出力するテキスト(ここでは(3)で作成したJSON)を指定して、setMimeTypeでは、HTTPレスポンスのContent-Typeを指定しています。

(6)は、HTTPのPSOTメソッドで送られてきた場合の処理です。そのままそのリクエストを doGet関数に渡しています。POSTでリクエストされても全く同じ処理をするようにするための対応です。

 

コードが書けたら、いよいよ公開してみます。「ファイル」→「公開」→「ウェブアプリケーションとして導入」の順にクリックして下さい。

Screen Shot 2018-03-15 at 22.16.21

 

公開範囲を選ぶことが出来ますが、とりあえず最初は自分だけにしておきます。他の選択肢としては、同じドメインのユーザー、全世界の人たちに公開するというのがあります。

Screen Shot 2018-03-15 at 22.22.59

 

「現在のウェブアプリケーションのURL」をメモして「OK」をクリックして下さい。

Screen Shot 2018-03-15 at 22.24.01

 

先程メモしたURLの後ろに「?name=noriyuki」というのをつけて、以下のようなURLを作成し、ブラウザのURL入力欄に入力して下さい。

https://script.google.com/a/sios.com/macros/s/XXXXXX/exec?name=noriyuki

 

すると、以下のようなレスポンスが返ってくるはずです。

{
  "greeting":"noriyukiさん、こんにちは"
}

(`・ω・´)シャキーン

これを応用すれば、もっと複雑なRest APIが作れるはずです。G Suiteの情報を簡単にRest APIで出力することが出来ます。色々楽しいことができそうです。

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる