【Google Spreadsheet】POST通信からスプレットシートに書き込む方法

google-spreadsheet-do-post

GASを使って、簡単なGET/POST通信をやってみました。

データベースの作成

こんな感じで、スプレッドシートにデータベースを作成しました。

GASでGET/POST通信するスクリプトの作成

ツール>スクリプトエディタからGASを開きます。

下記のコード(引用)を記述。

function doGet(e) {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var sheet     = ss.getSheetByName('シート1');
  var sheetData = sheet.getRange('A2:B' + sheet.getLastRow()).getValues();

  // データの成形
  var responseList = [];
  sheetData.map(function(d) {
    responseList.push({ fruit: d[0], price: d[1] });
  });

  // レスポンス
  var response = {
    data: responseList,
    meta: { status: 'success' }
  };
  return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}
参考 GASのdoGetとdoPostをcurlで試してみたQiita

終わったら、公開します。

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

設定と承認をすべて終えれば、URLが発行されます。

Windowsでcurlコマンドを使用する方法

curlの環境構築

ぐぐってもMax環境でのやり方が多いので、Windowsでも使えるようにします。

下記のURLからデータ(curl-7.65.3-win64-mingw)をダウンロードします。

https://curl.haxx.se/windows/

Cドラ直下に置きました。

curlの実行テスト

  1. コマンドプロンプトを開いて、
cd C:\curl-7.65.3-win64-mingw\bin\

2.curlコマンドが実行できるかテスト

curl --help

GASでGET通信する

下記のコマンドをたたき、スプレットシートのデータを取得します。

curl -L "GASで作成したURL"

成功です。

GASでPOST通信する

今度はスプレットシートに書き込んでみます。

curl -X POST -H "Content-Type: application/json" -d "{\"script\":\"hoge.jsx\", \"name\":\"i_suzuki\", \"date\":\"2019/08/11\"}" -L "GASで作成したURL"

Windowsの場合の注意点

MAXの場合下記のように記述しますが

curl -X POST -H "Content-Type: application/json" -d '{"aaa":"123", "bbb":"456" }' -L "GASで作成したURL"

Windowsのコマンドプロンプトで実行する場合、クォーテーションの記述方法が変わります。(シングルクォーテーションはNG)

curl -X POST -H "Content-Type: application/json" -d "{\"aaa\":\"123\", \"bbb\":\"456\"}" -L "GASで作成したURL"

コマンドを実行するとスプレットシートに追記されました!

引用/参考

https://qiita.com/aromanokarisu/items/ff3076a78335163d2f12

まとめ

GET通信とPOST通信を試してみて、ちゃんと意図通り実行結果を得られたので得るものは大きかったです。

今後、普段の作業効率化の手段の一つとして、応用していくつもりです。