スプレッドシートからSlackチャンネル/DM通知(GAS)

目次

※本ページ先頭に戻りたい場合は画面右下の画像に alt 属性が指定されていません。ファイル名: fdd5c5eff34d006b8526d0602cef2cd6.pngボタンを押して下さい。

概要

スプレッドシートから下記情報を取得し、Slackチャンネル通知DM通知を行う

  • slack_id
  • チャンネル送信内容
  • DM送信内容


※下記「Slack通知後、スレッドに連投」記事のように、連投(返信)も可能

プログラムを作成した理由

下記「スプレッドシートからkintoneレコードにコメント」にて3回コメントされても、対応されていない方への最終手段としてSlack通知して欲しい…困ったあ

という依頼を頂いた為。

ソースコード

「thread_post_slack」関数_引数の解説

  • post_type_name:エラー発生時の「●●処理でエラーが発生致しました」と表示する内容
    ※エラー発生時に解析し易い文章でOK
  • slack_api_token:「xoxb」から始まるIDを設定
    ※slack_botの作成方法は「SlackのAPI作成方法」を参照
    ※「Bot Token Scopes」に何を設定して良いか分からない…:大泣き:
    という方は下記画像の権限全てを付与する事を推奨
※必要なのは恐らく下記2項目のみ
「chat:write」(チャンネルに投稿)
「im:write」(DMに投稿)
  • channel_id
    • チャンネルに送りたい場合チャンネルIDを設定(左画像参照)
    • メンバーにDMを送りたい場合メンバーIDを設定(右画像参照)

  • send_names:通知したいメンションを設定
    ※<@slack_id>という形でslack_idを設定
    ※複数指定したい場合は、<@●●●><@▲▲▲>のように繰り返し設定
  • message:通知したい文章を設定
  • thread_ts
    • 新規投稿したい場合:「1回目_slack通知」のように引数を省略する
    • 返信したい場合:「1回目_slack通知」の返却値「thread_ts」を引数に指定
※返却値「thread_ts」には「一意のslack投稿先ID」が入る為、一意のIDを用いる事で返信が可能となる

感想

「JavaScriptで下記の似たようなコードを書いているから転記するだけだし、楽勝!」
と思ってGASでも開発致しましたが、

外部アプリへアクセスするメソッドが異なる為、苦労致しました:あせあせ:
※「UrlFetchApp.fetch」というGAS専用のメソッド?を使う必要がある

今回の開発にて、
JavaScript、GAS共にSlack送信が出来るようになったので、
今後は開発済みコードをコピペするだけで対応出来るようになったと思います:+1:

GAS開発はこれで5件目?と初心者なので、ドンドン開発していきたいところです:ピカピカ:

編集履歴

2022/08/20 新規作成

関連記事一覧

PAGE TOP