2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

非エンジニアのノーコードツール利用時にも!API連携確認はスプレッドシートでカンタンにできる

Posted at

概要

ノーコードツールでもAPI連携ができることにより、データをPOSTで他のシステムに送る機会が増えてきたと思います。
しかし、APIの送信はそのツールからできるから良いものの、受信先については別途用意しなければならず、非エンジニアの場合は「大変そうだ…」という感想を抱くと思います。

しかし、実は使い慣れている(であろう)スプレッドシートを送信先として使うことができるため、方法を紹介します。

方法

① まず、新規のスプレッドシートを作成し、名前などを設定した後、[拡張機能]から[Apps Script]を開きます。

image.png

② 次に名前を設定後、コードを入力し、保存ボタンを押します
(コードについては画像の後にあるため、コピペして下さい)。

image.png

コピペ用のコード
// doPost関数は、ウェブアプリケーションにPOSTリクエストが行われるたびにトリガーされます
function doPost(e) {

  // 起動中のスプレッドシート内の現在アクティブなシートを取得します
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // 受信したPOSTリクエストからpostDataをパース(解析)します
  const data = JSON.parse(e.postData.contents);

  // アクティブなシートの最大カラム数を取得し、最初の行からヘッダーを取得します
  let headers = sheet.getRange(1, 1, 1, sheet.getMaxColumns()).getValues()[0];

  // 各ヘッダーを、受信したPOSTデータの対応する値にマッピングします。もしデータに特定のキーが存在しない場合は、空文字列を挿入します
  let dataList = headers.map(header => data[header] || "");

  // 受信したPOSTデータからマッピングしたデータを用いて、新たな行を追加します
  sheet.appendRow(dataList);
}

③ 保存が完了したら右上の[デプロイ]ボタンの中から、[新しいデプロイ]をクリックします。

image.png

④ [ウェブアプリ]を選択し、説明文をよしなに入れた後、アクセスできるユーザーを[全員]にします。

image.png

image.png

⑤ 完了した後、下記の画面ができるのでウェブアプリのURLをコピーします。

image.png

⑥ スプレッドシートに戻り、取得するキー名を設定しておきます。
テストでは"name":"test", "value2":"hogehoge", "value1":"hoge"と記録したかったので下記にしました。
※キーの順が違ってもシートのカラム名を参照して入力されてほしかったのであえてvalue2を1より先にしています。

image.png

これで完成です!

検証

ぶじにPOSTして反映されるかを確認します。
Macの場合はターミナル、Windowsの場合はコマンドプロンプトに下記のコマンドをコピーし、任意のキーや値、先ほど取得したウェブアプリURLに差し替えて送信します、

コード雛形
curl -X POST -H "Content-Type: application/json" -d '{"[key]":"[value]"}' [スプレッドシートのウェブアプリURL]

自分の場合は下記となります。

image.png

エンターを押すと、スプレッドシートに下記の通りに入りましたので想定通りです!

image.png

さいごに

API連携は難しいことのように感じておりましたが、ものの数分でデータ取得が出来ると分かり少し拍子抜けしました。
とは言えスプレッドシートですので重要な本番データをこれでやってよいかは一考の余地がありますが、小規模サービスの場合や、重要すぎるデータでなければこれで行う選択肢もありかとは思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?