【自動化】Google Spreadsheetsの内容をSlackに自動で通知するシステムの作成する方法を紹介【超簡単】

こんにちは、書川(カキカワ)です。

表計算ソフトといえば、Microsoft社のExcelが有名かもしれないが、実はGoogleも同じようなサービス「スプレッドシート」を提供している。

今回、ビジネスチャットサービスのSlackにスプレッドシートの内容を自動で通知するシステムを作成する。

Check Slack's Automatic Notification
slackに送信された自動通知。

Googleにログインして、無限の可能性に挑戦する。

まず使用するブラウザはGoogle Chromeをおすすめです。

Googleアカウントを作成するメリットは、無料で様々な機能を使用でき、Googleクラウドでデータを管理できるのでチーム共有も簡単。

スプレッドシートを使用するには、Googleのアカウントを作成してログインしましょう。

さらに、GoogleにはGoogle Apps Script(GAS)を活用することで、業務効率を上げることも出来る。

例えば、ドキュメントで作成した文章をGmailで送信したり、Gmailをスクレイピングして、スプレッドシートにデータを蓄積したり。

Googleが提供しているサービスだけでなく、TwitterやSlackなどのような外部のアプリにも連携ができるからアイデア次第ではなんでも出来る。

今回は、外部アプリと連携した事例です。

スプレッドシートにスクリプトを書く。(コピペ可)

早速、スクリプトを書く時に必要な環境を準備しましょう。

Google DriveからGoogleスプレッドシートを開く。分からない方は「Google Drive」と調べてみましょう。

スプレッドシート のメニューバーに並んでいる「ツール」→「スクリプトエディタ」を選択する。

Description of the item to select
Google Spread Sheetsを操作。

スクリプトエディタは開きましたか?

Where to insert the code
スクリプトエディタにコードを書いていく。

以下のコードをスクリプトエディタにコピーアンドペーストする。

See the Pen Incoming Webhook-kaki by seiya-dev-uiux (@seiya-dev-uiux) on CodePen.

コードをペーストする位置は画像を見て確認しましょう。

コードをエディタにコピペ。

ペーストしたら、プロジェクトの名前は分かりやすく設定して、保存しておきましょう。

Slackでコミュニケーションの効率を上げる

Slack(スラック)の公式サイトはコチラ

次に、Slackを使用するために登録していく。

仕事でSlackを使う機会がない場合でも、メモ帳や開発に使える上に様々な機能を追加してカスタマイズ出来るから、ぜひ生活の一部に取り入れてライフハックしてみてください。

仕事用の連絡ツールとして「個人のLINEを強制的にグループに入れられる文化」に抵抗がある方は、Slackを提案するとイケてる。
職場に対してプライベートをオープンにしたくない人もいることの理解が必要だと考えている。

Incoming Webhookを設定する。

Slack内の機能の1つである「Incoming Webhook」を使う事で、外部のスプレッドシートからSlackにメッセージを送信することが出来る。

まずは、Slackの「APP管理」から「Incoming Webhook」を検索してインストールする。

Incoming Webhooks Installation method
Slackの管理画面

Incoming Webhookで「設定の追加」を選択しましょう。

Incoming Webhooks Setting method
Slackのアプリケーションを追加する。

Slackにある、自動で通知したいチャンネル名を選択して、インテグレーションの追加しましょう。

Select a channel
インテグレーションを追加する

Webhook URLはGoogleのスクリプトエディタで使うのでコピーしましょう。

Copy the payload URL
Webhook URLをコピーする。

スプレッドシートのスクリプトに必要なものを追加していく。

*記号に情報を入力することで、プログラミングが正常に動くようになる。

先ほどコピーしたWebhook URLをペーストする。

var postUrl = 
"https://hooks.slack.com/services/***";

自動通知する名前を決める。例では「豚の独り言」となっている。

//通知時のユーザー名
var username = '***'; 

Slackの絵文字をアイコンに設定が可能。あってもなくても困らないけど、可愛いから設定する。

//通知時に表示されるアイコン
var icon = '***'; 
Set Slack pictograms to icons
Slackの絵文字を入力してコピーするとコードが取得できる。

絵文字をコピーアンドペーストすると「:piggy:」というコードが表示される。
このコードを入力する事で絵文字アイコンを設定できるようになる。

設定した後のコードはコチラ

Script example
スクリプトエディタの進捗
var postUrl = 
'ここにWebhook URLをペーストする';
var username = 
'豚の独り言';
var icon = 
':piggy:';

プログラミングを追加し、コードを実行する。

はじめに書いていたSlackに通知するためのコードの前に、条件分岐を書いて実行する。

今回は単純な条件処理を行う「if文」繰り返し処理を行う「for文」を実行することで通知を実行する。

今回のコードでは問題ないけど、間違ったfor文の使い方をしてしまうと永遠に豚が鳴き止まない、「無限ループ」という悲惨な状態になるので、for文を書くときには十分にコード理解してから実行しましょう。

下の記事で繰り返し文]について書いてます。

スクリプトに書かれているコードは以下。コピペしてまずは動かしてみよう。

See the Pen SS to Slack by seiya-dev-uiux (@seiya-dev-uiux) on CodePen.

読み込むスプレッドシートを設定する。

‘シートのURL’と書かれている場所には、スプレッドシートのURLにある文字をコピーアンドペーストする事で、スプレッドシート を読み込みことが出来る。
エクセルと違い、ブラウザで動くスプレッドシートは webサイトのようにURLがある。

https://docs.google.com/
spreadsheets/d/「ココにある文字をコピー」/edit

スプレッドシートのシート名は、標準では「シート1」となっているのけれど、シート名を変更した場合は、スクリプトの中の’シート名’を変更する事を忘れないようにしましょう。

コードの全体像はこちら。

The entire code of the script
スクリプトエディタの全体像

読み込むスプレッドシートに書かれている内容はこちら。

The entire code for Spread sheets

間違いがない事を確認して、関数を実行しましょう。

Slackに自動通知の完成。これが最初の第一歩。

Googleのスクリプトを実行するためには、Googleアカウントの承認が必要。

関数を実行したら、承認を要求されるので許可しましょう。

Confirmation of approval permission
Googleの承認モーダル

許可するアカウントを選択する。

Choose the account to allow
Googleアカウントの選択

G Suiteアカウントを使っていない方は承認するときに、以下のようなモーダルが出るけれど、問題はありません。
左下の「詳細」を選択しましょう。

This account has not been approved
承認されていない通知

左下の「無題のプロジェクト(安全ではないページ)に移動」を選択しましょう。

This account has not been approved-2
承認するためのステップ

ここでアカウント承認の許可を行う。

Allow this account
アカウントアクセスのリクエストを許可する

その後、Slackには豚の独り言は届きましたか?

Check Slack's Automatic Notification

GASは複雑な開発環境を整えなくても、様々な業務効率化ツールの開発が出来る素晴らしいツールです。

出勤すると、僕の分身10人ほどが正確に仕事を片付けてくれている環境になっているから、他のタスクに時間を充てられています。

僕は、初めてBotを作成した時にめちゃくちゃ感動しました。

もしこれが初めてBotを作るという機会だった方には、豚の鳴き声が初体験を奪ってしまって本当に申し訳ない気持ちになります。

しかし、きっと忘れられない思い出になりましたよね。
そう信じています。