当ブログでも2年ほど前に取り上げたことがある(下記記事ご参照)「AppSheet」ですが、 @tmiyaiCloud さんのツイートでGoogle Apps Script(GAS)との連携機能が追加されることを知ったので、早速試してみました。
うぉ!突然Apps Scriptとの連携機能(Beta)が追加された>AppSheet
Workspace を始めとして、他システムとのAPI連携がグッと容易になるな。
ユースケース考えて試さないと!#AppSheet pic.twitter.com/abA3ZES2Wt— Miyai Takuya (@tmiyaiCloud) March 16, 2022
※2022年3月時点ではまだプレビュー段階の機能です。今後のアップデートによって仕様が変更される可能性があります。
事前準備
上記の通り現時点ではまだプレビュー段階の機能であるため、まずは対象アプリで新しい機能を有効にする必要があります。
「UX」の「Options」から「Preview new features」をオンにし、「SAVE」ボタンをクリックしてアプリを保存します。
変更後何時間くらいで設定が反映されるかは分かりませんが、私の環境では翌日には新しい機能が使えるようになりました。
2022/4/13 追記:
@tmiyaiCloud さんのツイートで「Preview new features」をオンにしなくてもGAS連携機能が使えるようになったことを知りました。
AppSheet のApps script連携が、"Preview new features"をOffにしても利用できるようになりました!🤗
明言されていないので、分からないのですがGAってことかなぁと思っています😅#AppSheethttps://t.co/YL4YCaerKv— Miyai Takuya (@tmiyaiCloud) April 12, 2022
確認したところ、まだ「BETA」マークは付いていますが、確かに「Preview new features」がオフの状態でもGAS連携機能が使えるようになっていました。
Google Apps Scriptプロジェクトの作成
Apps Scriptから、実行するGASプロジェクトを作成します。
チュートリアルにしたがって、今回実行するのは下記の簡単なスクリプト(sayHello)です。
function test() { sayHello("こんにちは"); } function sayHello(msg) { Logger.log(msg); }
AppSheetアプリから呼び出す前に、「実行」ボタンを押して必ず動作確認を行います。
AppSheetでスクリプトを呼び出すタスクを追加する
GASプロジェクトの準備ができたら、AppSheetの「Automation」からスクリプトを呼び出すタスクを追加します。
- 「Automation」の「Bots」から「New Bot」ボタンをクリックします。
- 「Bot name」で「When a (シート) record is created or updated, send a notification」を選択します。
- 「Send a notification」をクリックします。
- 「Settings」から「Call a script」をクリックします。
- 「Apps Script Project」から事前に作成したGASプロジェクトを選択します。
- 「Function Name」から実行する関数(今回は「sayHello (msg)」)を選択します。
- 「Function Arguments」から関数の引数を設定します。
- 今回は「app_name」列(列名はデータソースによって異なります)の値を引数として指定します。
- 「SAVE」ボタンをクリックしてアプリを保存します。
- 画面右側の「Mobile」、もしくは「Tablet」をクリックしてエミュレーターを表示します。
- データを編集して、スクリプトが実行されるかどうか動作確認を行います。
- GASプロジェクトに戻ると、関数が実行されログが出力されていることが確認できます。
制限事項
AppSheetのヘルプセンターによると、本機能を利用できるのはCoreプラン以降のユーザー、そして現時点では関数からの戻り値はサポートしていないとのことです。
- Apps Script executions are subject to standard Google Workspace quotas and limitations as stated in Quotas for Google Services.
- Apps Script tasks will be available for users in the AppSheet Core plan and above. See AppSheet pricing plans.
- Return values from the function are not yet supported.
https://help.appsheet.com/en/articles/6035282-call-apps-script-from-an-automation より
以上、AppSheetとGAS連携の簡単なテストを行ってみました。
GAS単体でも実現できることは非常に多いので、今回の機能実装によってAppSheetで出来ることがかなり広がるのではないかと思います。GAが非常に楽しみな機能ですね!
参考Webサイト
関連記事
2022/3/19 追記:
AppSheetのデータをGASに渡して翻訳した結果を返す簡単なアプリを作ってみました。
現時点では関数からの戻り値をサポートしていないのでGAS側で元データを変更する形で実装していますが、戻り値がサポートされると用途がかなり広がりそうです。
2022/3/20 追記:
AppSheetとGoogle Apps Script連携の一例として、アプリでボタンタップ(クリック)してGASで見積書PDFを作成する簡単なアプリを作ってみました。
もう少しちゃんと実装すれば、より実用的なアプリが作れるかもしれません。
この記事へのコメントはありません。