【GAS】Incoming webhookでslackにテキストを送信する方法
お久しぶりです,manonです。
最近バイト先の在庫管理システムを構築していてgoogle スプレッドシートの在庫数が変化した箇所をslackに送信して,slackでその理由を書いたらoutgoing webhookでまたgoogleスプレッドシートに返してコメントとしてテキストを挿入するコードを書いていました。
調べ方が悪かったのか意外と同じようなことをしている人がおらず苦戦したので備忘録的な意味も込めて紹介していきたいと思います。
スプレッドシートからslackにデータを飛ばす方法
gas側の準備
まずはスプレッドシートからslackにデータを飛ばす方法を説明していきたいと思います。google スプレッドシートを開いたら「ツール」から「スクリプトエディタ」を
選択してください。
すると下記の画像のような「コード.gs」というプロジェクトが自動で生成されます。
このmyFunctionというところにコードを書いていきます。今回はgasでslackにテキストを送信するためのコードを用意したのでこれをコピペしてこのページ通りに進めていけば動作します。
function myFunction() {
let postUrl = "ここにIncoming webhookのURLを貼る"let userName = "確認猫" // Slackに通知する時の名前になりますlet icon = ":confirm_cat:" // 表示されるアイコン
let jsonData = {"username" : userName,"icon_emoji" : icon,"text" : message}
// 上の送信内容を設定
// オプションを設定let options ={"method" : "post","payload" : payload};
// Slackに通知するUrlFetchApp.fetch(postUrl, options);}
SlackでIncoming webhookの準備をする
追加を押したら、「slackに追加」を選択し、チャンネルへの投稿という項目で自分がこのアプリを
追加したいチャンネルを選択し「Incoming Webhookインテグレーションの追加」を選択してください。
そうすると以下の画像のような画面になります。
この画像にあるWebhook URLというのが先程のコードにあったjsonを投げつける宛先のURLになるので
コピーしておきましょう。
実際にGASからslackにテキストを送ってみる
スクリプトエディタの画面で「デバック」を押します。
以下の画像のように実行ログで実行完了と出ればコードが正常に実行されています。
今回は「GASを使ってスプレッドシートからデータを送信してslackに送る」工程を行ったので、
次回は「slack側からテキストをGASに送信する方法」を説明していきます。
この二つの動作が出来るだけで作れるシステムの幅がガッと広がるので是非次の記事も読んで試してみて下さい!
最後まで読んで頂きありがとうございました。