GASとslackでヘルプデスクフォームを作った話(スラッシュコマンド版 準備編)

前回の記事で紹介した、GASとslackでヘルプデスクフォームを作った話(Googleフォーム版)の起点を、
Googleフォームではなくスラッシュコマンドから行うパターンの作成方法の紹介です。
重複する内容が多くあるので、slackアプリ作成の部分等は前回の作業の差分のみ書いていきます。

今回も準備編とコード編に分けて書きます。

動作の流れ

  1. ユーザーがslackのスラッシュコマンドを送信
  2. slack上にフォームが表示され、そこからヘルプ内容を投稿
  3. フォームの内容を、スプレッドシートに記録
  4. 質問した人をslackの専用チャンネルへ招待する
  5. フォームの内容を、slackの専用チャンネルにポストして、情シスへメンションを送る

必要なもの

事前準備

GASの準備

新しいプロジェクトを作成し、いったん保存します。
GASはスタンドアロン型でOKです。

f:id:simple-josys:20200502140133p:plain:w500

f:id:simple-josys:20200502140357p:plain


作成したGASをWebアプリケーションとして公開します。

f:id:simple-josys:20200502140520p:plain:w500


公開設定等を聞かれるので、次のように設定します。
Project versionNew
Excute the app asMe
Who has access to the appAnyone , even anonymous

解説
コードを更新するごとに、都度公開する必要があります。
その時に、2回目以降はProject versionを手動でNewにする必要があります。
Excute the app asは、アプリの実行者です。
Who has asccess to the appはアプリにアクセス可能な人の設定です。今回はslackがリクエスト元になるので、誰でもOK(非ログイン状態でもOK)にしています。

f:id:simple-josys:20200502140833p:plain


Current web app URLは後で使用するので控えておきます。

f:id:simple-josys:20200502141606p:plain

slackアプリの準備

Googleフォーム版と同様に作成し、追加で必要な設定を書いていきます。

スラッシュコマンドの作成

実行に必要なコマンドを作成していきます。

左メニューの「Slash Commands」→「Create New Command

f:id:simple-josys:20200502143631p:plain:w500


スラッシュコマンドのパラメータを設定していきます。

必須
Command → 実行したいときに打つコマンド
Request URL → さっき公開した、GASのURL(Current web app URL)

任意
Short Description → コマンドの簡単な説明
Usage Hint → コマンド以外にパラメータを入力させるときのヒント

f:id:simple-josys:20200502144327p:plain:w500


アプリを再インストールしてくださいと言われますが、一旦無視します。(もう1点設定を変更するため)

f:id:simple-josys:20200502144837p:plain:w500

Interactivity & Shortcutsの設定

Interactivityは、フォーム(ダイアログ)やボタン等からリクエストがあった時にどのURLにリクエストするか設定するものです。
そのためスラッシュコマンドを受け取って実行するGASと、フォームやボタンから受けたリクエストを処理するGASを分けることもできます(たぶん)

左メニューの「Interactivity & Shortcuts」をクリックし、右上のツマミを「On」にします。

f:id:simple-josys:20200502145021p:plain:w500


今回は1つのGASでスラッシュコマンドもフォームの処理も行うので、
Request URLGASのURL(Current web app URL)を入れます。

f:id:simple-josys:20200502145508p:plain:w500


設定が終わったのでアプリをワークスペースに再インストールします。

左メニューの「Install App」→「Reinstall App

f:id:simple-josys:20200502145902p:plain:w500


許可を求められるので、投稿先チャンネル(ヘルプデスク用のチャンネル)を指定し、許可します。

f:id:simple-josys:20200502150103p:plain:w500


アプリの準備はこれで完了です。

slackチャンネルの準備

Googleフォーム版と同様です。