チュートリアル

2020-11-15
2020-11-18

概要

このチュートリアルでは、SPALO-APIsのWebhook送信を使い、SPALOアシスタントで「送信」された情報をGoogleスプレッドシートに書き込む方法を説明します。

用意するもの

  • SPALOボット:面談シート簡易版
  • Googleスプレッドシート:面談シート簡易版
  • Webhookウェブアプリ:GoogleAppsScript
  • SPALO-APIs:Webhook送信

SPALOボットの作成

まずはじめに、SPALOメーカーで「面談シート簡易版」ボットを作成します。ボットとの会話で入力する情報は以下の5項目です。

日付、時間、名前、年齢、メールアドレス

SPALOアシスタントで送信

1. ボットを作成したら、SPALOアシスタントで帳票が送信できるように管理者から承認をもらいます。

2. SPALOアシスタントで作成したボットと会話し、帳票を送信します。

3. SPALOメーカーの送信履歴画面で、送信履歴があることを確認します。

Googleスプレッドシートの準備

SPALOアシスタントで「送信」すると、ボットに登録されたWehook通知先に、面談シート簡易版の中身となるデータが通知されます。

ここでは、面談シート簡易版ボットで収集する5項目をそのまま書き込むので、次のようなレイアウトにします。

Webhook受信アプリの作成

Webhook通知を受け取り、Google スプレッドシートに書き込むアプリケーションを作成します。ここでは、GASを使ってコーディングします。

スクリプトエディタの起動

「ツール」>「スクリプトエディタ」と選択し、スクリプトエディタを開きます。

通知された情報の取得

Webhook通知された情報をdoPost(e)で受け取り、データの中身を取得します。

function doPost(e) {
  // get data
  const jsonString = e.postData.getDataAsString();
  const body = JSON.parse(jsonString);

  // data setting
  const eventTime = body.eventTime;
  const workspaceName = body.workspaceName;
  const groupName = body. groupName;
  const botName = body. botName;
  const historyId = body.historyId;
  const senderName = body.senderName;
  const hizuke = body.data['日付'];
  const jikan = body.data['時間'];
  const name = body.data['名前'];
  const age = body.data['年齢'];
  const mail = body.data['メールアドレス'];

シートにインサート

取得したデータをスプレッドシートの「シート1」に書き込みます。

// get sheet
const ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
const sheet = ss.getSheetByName("シート1");
sheet.appendRow([historyId, senderName, hizuke, jikan, name, age, mail, eventTime]);

アプリのデプロイ

「公開」>「ウェブアプリケーションとして導入」と選択し、 Webhook-URL を発行する画面を開きます。アクセス権限を設定し、「更新」ボタンをクリックすると、アプリでDeployされ、URLが発行されます。

GASのテスト

Webhook 送信されると、以下のフォーマットのデータがWebhookURL宛てに通知されます。コーディングしたGASにエラーがないか、curl コマンドでテストデータを送信し確認します。

テストデータ

{
  "eventTime": "2020-10-10 12:34:56",
  "workspaceName": "動物園",
  "groupName": "GH GAS",
  "botName": "面談シート簡易版",
  "historyId": 1001,
  "senderName": "面接官A",
  "data": {
    "日付": "2020年10月10日",
    "時間": "12時34分",
    "名前": "須波 朗",
    "年齢": "22",
    "メールアドレス": "akira@example.com",
  }
}

送信先URL

https://script.google.com/macros/s/<環境によって異なる>/exec

curlコマンド

以下のフォーマットでcurlコマンドをを実行します。

curl -d <テストデータ> -L <送信先URL>

ローカルテスト

コマンドを投げ、GASにエラーがなければ、successと表示され、スプレッドシートに値がインサートされます。errorが返る場合は、GASを確認してください。

SPALOメーカーの設定

発行したWebhookURLをSPALOメーカーに登録し、登録したWebhookURLを、ボットに紐付けます。

WebhookURLの登録

「ワークスペース」> 「外部サービス連携」> 「WEBHOOK」を選択し、WebookURLを登録します。登録が完了するとWebhookIDが発行されます。

SPALOボットに紐付け

送信Webhookのプルダウンより、登録したWebhookURLのIDを選択します。

完成

SPALOアシスタントで「面談シート簡易版」ボットを開き、ボットと会話を進めます。

会話が終わったら「送信」します。送信した内容は、SPALOメーカーの履歴画面に表示されると同時に、Googleスプレッドシートにも表示されます。

ダウンロード

この記事で紹介したサンプルは以下からダウンロードできます。