請求書アプリのユースケースで、AppSheet AutomationのTask(タスク)設定をマスターします。
前回(第3回)は、「Send an email」Taskを設定してメール送信をしてみました。
今回は、「Call a webhook」Taskを設定します。
「LINE Notify」というサービスを使って、AppSheetからLINEにプッシュ通知をやってみましょう。
この記事で使用する請求書アプリは、ブログで解説している請求書アプリ(7回シリーズ)です。
ブログを読んでアプリを自作していない場合は、メルマガ購読者特典のサンプルアプリをダウンロードしても大丈夫です。
【お知らせ】
2022年10月以降、AppSheetエディタの画面が新しく変更されています。
AppSheetのアップデートが速すぎて(汗)、このブログ記事はまだ新エディタの画面には対応していません。
エディタ画面右上にある「Switch to the legacy editor」というアイコンをクリックすると、新エディタと旧エディタの切り替えができます。
記事のアップデートができるまでは、とりあえず、旧エディタに切り替えて解説を読んでください。
目次
1. AppSheetからWebhookを使う
何かのイベントをトリガ(きっかけ)として、HTTP通信を利用して外部サービスにデータの送受信をする技術を「Webhook」といいます。
WebhookでAppSheetと連携できる外部サービスは、REST APIというHTTP通信に関するルールをサポートしている必要があります。
例えば、Zapier、Slack、Twitter、Twilio、IFTTTなど、Webhookを使ってAppSheetと連携できる外部サービスがあります。
今回は、Webhookが利用できるサービスとしてLINE Notifyを例に「Call a webhook」の使い方を解説します。
請求書アプリのユースケースでは、請求書発行をトリガとしてLINE Notifyに「取引先に請求書を送信しました」というメッセージを通知します。
第1回で作成したBot(請求書Automation)にStepを追加して、以下の手順でBotを実行します。
- Event:「請求書発行」ボタンをクリックして、Acionを実行する
- Step:「Call a webhook」を設定したStepを実行する
- Task:「Call a webhook」でLINE Notifyにプッシュ通知をする
「Call a webhook」は外部サービスへデータの送信(Post)、更新(Put、Patch)、削除(Delete)ができます。
データの受信(Get)はできないので注意してください。
2. LINE Notifyを設定する
アクセストークンを発行する
最初に、LINE Notifyを使用するための設定を行います。
「LINE Notify」(https://notify-bot.line.me/ja/)にアクセスして、右上の「ログイン」をクリックします。
自分のLINE IDのアカウントでログインします。
画面右上に自分のLINE IDが表示されるので、クリックします。
「マイページ」をクリックします。
「トークンを発行する」をクリックします。
「トークンを発行する」で以下の設定を行います。
- トークン名:誰から(何から)通知が来たのか分かるように「トークン名」を付けます。
- ここでは、「AppSheet Webhook」というトークン名にしました。
- 通知を送信するトークルームを選択してください。
- 自分のLINE IDにあるトークルームが表示されるので、ひとつ選びます。
最後に「発行する」をクリックします。
発行されたトークンを「コピー」します。
「連携サービス」のところに、
- From:トークン名
- To:通知を送信するトークルーム
が表示されます。
トークルームにLINE Notifyを招待する
自分のスマホのLINEアプリを開きます。
「トーク」でさきほど「通知を送信するトークルーム」に設定したトークルーム(AppSheet)を選択します。
「通知を送信するトークルーム」(AppSheet)のメンバーにLINE Notifyを招待します。
LINE Notifyをメンバーに招待しないと、「通知を送信するトークルーム」(AppSheet)に通知が来ません。
「LINE Notifyをグループに追加しました。」と表示されます。
「通知を送信するトークルーム」(AppSheet)のメンバーにLINE Notyfyが追加されました。
以上で、LINE Notifyの設定は完了です。
3. Call a webhookを設定する
「Call a webhook」の設定をしましょう。
AppSheetエディタ左側メニュー「Bot」をクリック、「Bots」タブに移動します。
第1回で作成したBot「請求書Automation」をクリックして開きます。
「Add a step」をクリックして、新しいStepを追加します。
Step(ステップ)の名前をつけます。
「Step name」に「LINE Notify by Webhook」と名前をつけました。
Stepを開いて、種類を「Run a task」にします。
「Tasks」タブに移動します。
さきほど追加した「LINE Notify by Webhook Task - 1」というTaskがあると思うので、クリックして開きます。
はじめの項目を以下のように設定しました。
設定項目 | 値 |
---|---|
Task category | 「Call a webhook」を選択します。 |
Task name | Taskの名前です。Step名と同じ「LINE Notify by Webhook」にしました。 |
Table name | タスクを実行するテーブルです。ここでは「請求書」を選択します。 |
Preset | ここでは「Custom」を選択します。 外部サービスがSlack、AppSheet API以外の時は「Custom」を選びます。 |
続けて、LINE Notifyに関する設定を行います。
LINE NotifyはREST APIによるHTTP通信をサポートしているので、ここでAPIに関する設定をします。
設定項目 | 値 |
---|---|
Url | 外部サービスのエンドポイントURLを入力します。LINE Notifyでは以下のようになります。 https://notify-api.line.me/api/notify |
HTTP Verb | HTTPメソッドを選択します。ここでは、AppSheetから「LINE Notify」にメッセージを通知するので「Post」を選びます。 |
HTTP Content Type | ここでは「FORM_URL_ENCODED」を選択します。 |
Body | メッセージ本文を「message=」に続けてテキストで入力します。テキスト以外に、タグを使って列名や関数を設定することができます。 |
HTTP Headers | 「Add」をクリックして、追加します。ここでは、「Authorization: Bearer 」に続けて、先ほど発行したトークンの文字列を入力します。 「Authorization: Bearer xxxxxxxxxxxxxxxxxx」のように入力します。 |
「Body」(メッセージ本文)は、タグ(<<>>)を使って書くことができます。
「Table name」で設定したテーブル(ここでは「請求書」テーブル)の列の値は以下のように書きます。
<<[ 列名 ]>>
ここでは、「請求書」テーブル内の「件名」を
- <<[件名]>>
と書いています。
また、「Table name」で設定したテーブルから参照しているテーブル(例えば、「取引先」テーブル)の値を取得する場合は以下のように書きます。
<< [ Ref を設定した列名].[参照テーブル内の列名 ] >>
「取引先名」は「取引先」テーブル内にあります。
「請求書」テーブルの「取引先」列(Ref)から「取引先」テーブルを参照しているので、
- <<[取引先].[取引先名]>>
と書いています。
最後に、「Body Template」「Body Template Data Source」とExecution Optionsがありますが、メッセージにひな形(テンプレート)を使うことは必須ではないので、省略しても大丈夫です。
4. AppSheetでCall a webhookを実行する
「Call a webhook」を実行してみましょう。
AppSheetエディタのプレビューで「請求書」を選択し、作成済みの請求書をひとつ選択します。
「請求書発行」ボタンをクリックするとBotが実行されるので、クリックしてみましょう。
LINE Notifyから「通知を送信するトークルーム」(AppSheet)にプッシュ通知が届きます。
LINEアプリを開いてみましょう。
「通知を送信するトークルーム」(AppSheet)にメッセージが1件届いています。
トークン名(AppSheet Webhook)とメッセージが表示されました。
以上、「Call a webhook」Taskを使って、AppSheetからLINE Notifyにプッシュ通知をしてみました。
今回紹介したLINE Notifyの事例が、AppSheetとLINEを連携させる最も簡単な方法です。
連絡にLINEを使っている場合は、簡単にできる「Call a webhook」の活用を検討してみてください。
- 第1回 6つのTaskでできること
- 第2回「Create a new file」でファイルを作成する
- 第3回「Send an email」でメールを送信する
- 第4回「Call a webhook」でLINEにプッシュ通知する
- 第5回「Call a script」でAppSheetとGASを連携させる
- 第6回「Send a notification」でモバイルに通知する