RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

イベント詳細についてはこちらをクリック

curlでPOSTしGAS(Google Apple Script)を実行する

はじめに

kuwa_38です。この記事ではGoogle Apple Scriptとして作成したスクリプトcurlコマンドから実行する方法を紹介します。

GAS(Google Apps Script)とは

以前このブログで書かれていた記事の中に分かりやすい説明があったので引用します。

Googleの各種アプリ(Google スプレッドシート/Googleドキュメントなど)をアプリ内ではなく外から操作できるJSライクなプログラミング言語」です。 エクセルに対するVBAの関係と一緒です。

tech-blog.rakus.co.jp

上の記事は入門としてスクリプトエディタ上から作成したスクリプトを実行しています。本記事ではスクリプトエディタ上からでなく、外部(curlコマンド)から実行する方法の紹介となります。

今回やること

curlコマンドからGASを実行するための大まかな手順は以下です。

  • GASの実行結果を書き込むSpreadSheetの作成
  • GASの作成
  • POSTする設定
  • curlからPOSTする

GASの実行結果を書き込むSpreadSheetの作成

今回は以下のようなシートを作成し、果物(fruit)と値段(price)を末尾に追記します。

f:id:kuwa_38:20190429004817p:plain
書き込むSpreadSheet

GASの作成

以下をスクリプトエディタに記載します。

/**
 * POSTされた時に実行されるメソッド.
 *   行の最後に受け取った値を挿入する
 * @param e 下記のJSONを想定
 *   fruit:フルーツ名
 *   price:価格
 * @return なし
 */
function doPost(e) {
  var ss       = SpreadsheetApp.getActiveSpreadsheet();
  var sheet    = ss.getSheetByName('シート名'); 
  var PostData = JSON.parse(e.postData.contents);

  // 行の最後に値を追加
  sheet.appendRow([PostData.fruit, PostData.price]);
}

参考: qiita.com

POSTする設定

POSTする前に作成したスクリプトにアクセスできるように設定します。

  • 公開 > ウェブアプリケーションとして導入

    f:id:kuwa_38:20190429010659p:plain
    スクリプト許可1

  • 次のユーザとしてアプリケーションを実行:自分

  • アプリケーションにアクセスできるユーザ:全員(匿名ユーザを含む)

f:id:kuwa_38:20190429011140p:plain
スクリプト許可2

  • 更新ボタンを押すと、接続するためのURLが作成されます
    • curlで接続する際に使用するのでコピーしておくと良いです

f:id:kuwa_38:20190429011453p:plain
スクリプト許可3

参考:yamap55.hatenablog.com

補足:承認を求められたら

承認を求められた場合は下記を参考に承認してください。

tonari-it.com

curlからPOSTする

以下のcurlを実行し、POSTします。

curl -X POST -H "Content-Type: application/json" -d '{"fruit":"peach", "price":"650" }' -L https://script.google.com/macros/s/xxxx/exec

f:id:kuwa_38:20190429012610p:plain
スクリプト実行結果

おわりに

この記事ではcurlコマンドを使ってPOSTし、GAS(Google Apple Script)を実行する方法を紹介しました。今回はcurlコマンドを直打ちでしたが、自作アプリなどからPOSTする仕組みにしておけば、SpreadSheetへの操作をより手軽にできるようになるかと思います(何か作りたいなと思案中)。
気になった方はぜひ試してみてください。

Copyright © RAKUS Co., Ltd. All rights reserved.