【GAS】でSlack Webhookを使ってスプレッドシートから自動投稿するツールつくってみた

Google App Script

なぜ作ろうと思ったか

マネージャーが部署内で共有する情報をスケジュール化(自動化)した方が良いと思い、実装してみました。
また、部署内で「こんなサクセスパターンがあったよ」といった共有事項をスケジュール化して投稿したいときや、
英語学習の際に単語を毎日投稿するタイミングで使うなど、
さまざまなシーンで活用できると考えました。

このシステムを社内で試験的に導入したところ、メンバーからも大変好評で、
日常業務の効率化に貢献しているとの声が寄せられました。
そこで、他の組織の方々にも役立つのではないかと思い、一部機能を有料で公開することにしました。

アウトプットイメージ

画像

◯投稿頻度
・毎日、時間指定可能(Google App Scriptにて設定)

◯投稿内容
・スプレッドシートの特定のセルに入っている値(テキスト)をSlackの特定のチャンネルにポスト

画像

コンテンツ管理するためのスプレッドシート

構築方法(準備編)

準備するもの
・Slackのアプリ作成
・スプレッドシート

Slackのアプリ作成

Slack側で の アプリ作成を行います。アプリ作成はコチラから

画像
Slack APIの上記URLよりYour appsをクリック
画像
アプリ作成をクリック
画像
画像
App nameは任意の名前でOK、投稿したいワークスペースを指定
画像
Incoming Webooksを選択
画像
Webhook URLをコピー

これでSlackのアプリ側は完了です。

スプレッドシート

あとは以下設定をスプレッドシートのGoogle App Scriptの設定を行っていただければ、
当日(#列)の右側のB列のセルの値をSlack側に特定の時間にポストするような仕組みを構築することが可能となります。

画像
A列に日付、B列に投稿したいコンテンツ

シート名は、シート1とします。

Google App Script(コードは有料となります)


コードはこちらから
Slackのアプリ作成で取得した Webhook URLをXXXXXXの部分に挿入し、
あとは、Apps Scriptに貼り付けるだけで使用可能です。

画像

スケジュール化する場合はApps Scriptから以下設定を行います。

画像
画像
画像
この設定で毎朝9-10時にB列の値がSlackの指定のチャンネルに投稿されます

コードはこちらから購入可能です。

Python を使った投稿はこちらから

上記はWebhookを活用し構築しましたが、
Slack APIをコールして構築する場合は以下手順を参照くださいませ。
システムの詳細な構築手順を知りたい方には、この記事が非常に有用です。

【すぐに利用開始可能】GASでスプレッドシートからSlackへ自動投稿する方法 1/2

【GAS】でスプレッドシート と Slackを活用した有効的な社内連携の仕組み化(実装編)2/2 【一から手順を紹介】