Slackには、Gmail の転送機能がありますが、転送先のChannel のコントロールが細かく指定できません。
個人的に、Gmail フィルタでメールに付与したラベルごとに、転送先のチャンネルを切り替えることを実現したかったので、スプレッドシートの入力値を元に、Gmail を Slack 通知する Google Apps Script を作ってみました。
スプレッドシートをコピーすれば、使えるので、作成したものの使い方について記載します。
個人的に個人でも会社でも使用するのですが、環境構築が面倒だったりするので、claspのインストールなしでGoogle Apps Script のエディターにコピーアンドペーストして利用できるようにしています。
この記事では以下の3種類の方法と、使い方について説明します。
- スプレッドシート をコピーして使用する方法
- Github リポジトリをCloneして、セルフビルドする方法
- ビルド済のリソースをコピーして使う方法
V2を作った
gas-Gmail2Slack
は旧方式のIncoming WebHooks を使っているので、新しくV2
を作成しました。
新方式のIncoming WebHooksを使って、Gmail をQuery指定して、Slack に通知する Google Apps Script を書いた | Monotalk に使用方法をまとめていますので、何か旧方式のIncoming WebHooksを使う理由がなければ、V2を使ってください。
スプレッドシート をコピーして使用する
スプレッドシート をコピーして使用する方法を記載します。
-
コピー元のスプレッドシート
以下が、コピー元のスプレッドシートになります。
gas-Gmail2Slack初期設定
の設定シート作成
は実施済です。
Github リポジトリをCloneして、セルフビルドする
clasp のインストール
コンテナバインドスクリプトをデプロイするため、clasp をインストールする必要があります。
clasp のインストールは以下の記事が参考になるかと思います。
GAS のGoogle謹製CLIツール clasp - Qiita
-
clasp のインストール
npm i @google/clasp -g
-
clasp login
clasp login
Git リポジトリをclone して、新規でスプレッドシート を作成、Google Apps Script をビルドしてPushする。
-
Git clone
git clone https://github.com/kemsakurai/gas-Gmail2Slack.git <project_name>
-
nom install
cd <project_name> npm install
-
スプレッドシート を新規作成
スプレッドシート を新規で作成する場合は、npm run setup
を実行します。 コマンド実行で、.clasp.json の初期化、スプレッドシート を作成します。npm run setup
-
コンテナバインドスクリプトをデプロイ
npm run deploy
これで、gas-Gmail2Slack
というスプレッドシート が GSuite上に作成されます。
ビルド済のリソースをコピーして使う
GSuite のセキュリティ設定で、公開スプレッドシート のコピーができない場合で、ビルド、デプロイが面倒な方は、gas-Gmail2Slack/dist at master · kemsakurai/gas-Gmail2Slack のリソースをコンテナバインドスクリプトとしてコピーしても使うことができます。
使い方
使用方法について説明します。
Incoming Webhooks を有効化、URLを取得、設定する
Incoming Webhooks の有効化して、URLを取得、スプレッドシート に設定します。
-
Incoming Webhooks の有効化
Slack の チャンネルに通知するには、Incoming Webhooks を使います。
現状、旧方式のIncoming Webhooks と、新方式のImcoming Webhooks があり、このスプレッドシートは旧方式で動作します。
旧方式の設定手順は、以下の記事が分かりやすかったです。
SlackのIncoming Webhooksを使い倒す - Qiita -
URL をスプレッドシート に設定する
メニューの、gas-Gmail2Slack
から初期設定
、Webhook URL設定
をクリックします。
ダイアログが表示されるので、払い出した Webhook のURLを設定します。
Config シートに通知対象の Gmail 情報と、通知先の Slack のチャンネルを入力する。
Configシートのカラムの内容を説明します。
-
Tag
1行コメントを記載します。
Slackへはタグ
として通知されます。- 入力例
Google Search Console
- 入力例
-
Channel
通知先のSlackのチャンネル名を記載します。#
始まりです。- 入力例
gsc
-
SendTo
送信先のSlackのアカウントIDを入力します。- 入力例
@UDJ6E61JL
- 入力例
-
Message body length
メール本文の長さを記載します。タイトルのみ表示にしたい場合は、0
を入力するとタイトルのみにできます。- 入力例
1000
- 入力例
-
Query
Gmail の検索クエリを設定します。Google Apps Script 側で Slack 送信したChatのメッセージは既読にするので、is:unread
を付与すると未読のメッセージのみ通知されます。
Gmail で使用できる検索演算子 - Gmail ヘルプ にどんな検索演算子が使用可能かは記載されています。- 入力例
is:unread label:google-search-console
- 入力例
スケジュール実行の設定
メニューの、gas-Gmail2Slack
から 初期設定
、スケジュール実行
をクリックすると、ダイアログで実行スケジュールを設定可能です。
例えば、every hour
を選択すると1時間おきにSlackにメールが通知されます。
参考
- Delete Unwanted Gmail Messages in Bulk with Google Scripts
- 特定ラベルの Gmail を受信したら、指定時間に Slack へ通知 – with a Christian Wife
- Googleユーザー必見!Slackと連携してG Suiteをもっと便利に - エブリデイG Suite™
以上です。
コメント