Slack x GAS(google apps script)の連携で業務を自動化してみた。実装編1

前回の続きより、実装手順を公開。
実装手順についてもそこそこの量になるため記事を分割して公開予定。

仕様

特定の日時にSlackへタイピングスコア提出の案内送信

  • タイピングスコア提出フォームの作成
  • 投票結果用スプレッドシート作成
  • 特定の日時にスプレッドシートからデータを取得し、加工、Slackへ送信。取得時は過去3ヶ月分のデータを取得

今回公開する内容は

特定の日時にSlackへタイピングスコア提出の案内送信

まで。

この手順を細分化すると

  • slack api tokenの生成
  • 自動送信プログラムの作成

スコアのデータについてはスプレッドシートで管理することを想定して、
googleAppsScriptで実装。

slack api tokenの生成

そもそも api tokenって何?ってなると思いますが、
記事書く上で色々調べていたら非常にわかりやすい記事があったので、
参照してみてください。

https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

またapi tokenの取得手順は下記を参考にしました。
(英語なので読むのは大変です。。。)

https://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21

slack apiにアクセス

https://api.slack.com/apps

アプリ作成

「Create New App」を押下。

slack GAS

    1. App Nameを設定
    2. 適応するワークスペースを選択
    3. Create Appを押下

Slack GAS

scopesの設定

スコープ
「OAuth & Permissons」ページに遷移
slack GAS

Scopesのセクションまでスクロールする。

「SelectPermission Scopes」から
Send messages as {App名}

を選択
slack gas

その後、「Save Changes」を押下。
slack GAS

APIのメソッドリファレンスは下記を参照することができる。
https://api.slack.com/methods

Slackにアプリをインストール

1.OAuth & Permissonsのページから「Install App to Workspace」を押下
slack GAS

2.「許可する」ボタンを押下
slack GAS

3.下記のようなページが表示されたらapi token 生成完了
slack gas googleAppsScript

GoogleAppsScript(GAS)でプログラム作成

GASの設定についてはばーいな氏の記事を参照
https://breezegroup.co.jp/201808/business-improvement-gas/

ソースコードを下記に設定

実行したら無事届きました。
Slack GAS

トリガーの設定

これでSlackとスプレッドシートの連携部分ができましたが、
特定の日時を指定してGASの送信プログラムを自動実行手順を紹介

1.スクリプトエディタから 編集>現在のプロジェクトのトリガー を選択
slack GAS

2.下記画面になったら左下「トリガーを追加」を押下
slack GAS breeze

3.下記で設定
slack GAS googleAppsScript

実行する関数を選択         →実行させたい関数を選択
イベントのソースを選択       →時間主導型
時間ベースのトリガーのタイプを選択 →月ベース
日を選択              →1日
時刻を選択             →午前9時~10時

※時間ベースは月単位から分単位ごとまで細かく設定可能。
※時刻は「1時間の間で実行するよ」という仕様。

で保存を押下で完了。

作者情報
バックエンドエンジニア。Sier企画提案営業6年。独学1年を経て営業とエンジニアの職種並行期間1年。正式にエンジニアになり1年半経ちました。社内のIT教育推進担当としても邁進中。自身の開発環境のモダン化に挑戦中。ITに生きITに死す、我が人生。
公式Twitter