GASからSlackに投稿する時に使用する「Incoming Webhook」の設定方法について解説します。コピペで使える投稿用のサンプルコードもあります。
本エントリはSlackのWebhook URLを発行する手順および投稿するためのサンプルコードを紹介しています。
Google Apps ScriptおよびSlackを利用していることが前提になっています。
なお、有償版Slackをお使いの場合は「ワークフロービルダー」からIncoming Webhookを設定することも可能です。
Slackアプリから「ワークスペース名」 -> 「設定と管理」 -> 「アプリを管理する」を押します。
Slack app directoryが開いたら、上部の検索窓に「Incoming webhook」を入力します。
ヒットした「Incoming Webhook」をクリックします。
Incoming webhookの画面が開いたら「Slackに追加」をクリックします。
Incoming Webhook経由で投稿されたメッセージを、どのチャンネルに投稿するのか選択します。
既存のチャンネルでも新しく作っても構いません。
選択したら「Incoming Webhook インテグレーションの追加」をクリックします。
次に表示される画面で、Webhook URLが払い出されているはずです。
このURLに対してGASからメッセージを投稿すると、指定したチャンネルにメッセージが表示されます。
本ページ下部にあるサンプルコードを実行してみます。
GASのエディタにコピペして、払い出されたWebhook URLの部分を書き換えてください。
関数「test」を実行してメッセージが到着すれば成功です!
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00066/index.html
*/
function test(){
post_slack('ここにメッセージを入れます');
}
function post_slack(text) {
// ######### 事前設定ここから ########
// SlackのWebhook URLを入力してください
const slack_webhook_url = 'https://hooks.slack.com/services/*****************';
// ######### 事前設定ここまで ########
// SlackのWebhook URLに投稿するデータをまとめる
const json =
{
'username': 'GASから送信したよ',
'icon_emoji': ':smiley:',
'text': text
};
// SlackのWebhook URLに送信するデータをJSONに変換する
const payload = JSON.stringify(json);
// UrlFetchAppで使用するメソッドやコンテントタイプを指定
const options =
{
'method': 'post',
'contentType': 'application/json',
'payload': payload
};
// Slackに送信
UrlFetchApp.fetch(slack_webhook_url, options);
}
Googleカレンダーの今日の予定をSlackに通知してくれるGoogle Apps Scriptです。1日分の予定は朝にまとめて知りたいですよね。SlackのIncoming Webhookを使用しています。
スプレッドシートの不要な行を削除するGoogle Apps Scriptです。行がいつの間にか数万行に増えてしまっている・・・よくありますよね。
トリガーで実行されたスクリプトが失敗したときに送信されるエラー通知メールを、Slackに転送するGoogle Apps Scriptです。メールはトリガーの設定者にしか飛ばないため、他のメンバーに共有したいときにどうぞ。
GOOGLEFINANCE関数を利用して、現在の為替レートをSlackに通知してくれるGoogle Apps Scriptです。張り付くほどじゃないけどレートが気になるときにどうぞ。
Slackに投稿したメッセージをほぼリアルタイムにGoogle スプレッドシートにバックアップするGoogle Apps Scriptです。無償版Slackはデータの保存期間が90日に短縮されるので作ってみました。
Gmailに届いたメールから特定の件名のものをSlackに通知するGoogle Apps Scriptです。Slackが浸透するほどメールをあまり見なくなり、大事なメールを見逃すことが増えてきたので作りました。