株式会社アクシスのアドベントカレンダー23日目の記事です🎄
GASを使って社内用のSlackボットを開発しようと思ったのですが
GASのブラウザエディタの使い勝手があまり良くなく、個人的には好みではありませんでした...
なので色々と試してみたところ clasp を使えばローカルのエディタで開発でき、さらにTypescriptでのコーディングもサポートしていたのでその手順をまとめてみました!
手順
claspインストール
まずはプロジェクト作成
$ npm init -y
claspインストール
$ npm install -D @google/clasp
最後にGAS用のTypescript定義をインストール
$ npm install -D @types/google-apps-script
clasp設定
Googleにログイン
$ npx clasp login
ブラウザでGoogleのログインフォームが表示されるのでログイン情報を入力
権限を許可するか聞かれるので「許可」をクリック
ターミナル上に認証成功のメッセージが表示されていればOK
Authorization successful.
Default credentials saved to: ~/.clasprc.json
成功したらclaspプロジェクトを作成
スクリプトの種類を聞かれるので standalone
を選択
$ npx clasp create ${プロジェクト名}
? Create which script? (Use arrow keys)
❯ standalone
docs
sheets
slides
forms
webapp
api
push
claspはTypeScriptをサポートしているので、ts拡張子ファイルをpushした場合はJavascriptにトランスコンパイルしてpushしてくれる。
とりあえず動作確認のためにコードをpushしてみる
$ echo 'const helloWorld = () => Logger.log("Hello, App Script!");' >> app.ts
$ clasp push
$ clasp open
ブラウザが開くのでコンパイルされたGASコードが表示されたらOK
// Compiled using ts2gas 3.6.3 (TypeScript 3.9.7)
var helloWorld = function () { return Logger.log("Hello, App Script!"); };
bot作成
botの作成については時間がなかったので @_nsk_さんがアドベントカレンダーで書いてくれてたので割愛
https://qiita.com/_nsk_/items/b8b2f71cfbecb6e2ec59#2incoming-webhook-%E3%81%AE%E8%A8%AD%E5%AE%9A
感想
無料でコードを実行できる環境としてGoogleAppScriptを愛用していましたが
claspのおかげでさらに好きになりました。(時間があればBot作成の部分を詳しく書きたい...)
皆さんもボット開発を行いたいときはGoogleAppScript+claspで開発してみてはいかがでしょうか?