プログラミング エンジニア全般

【GAS】slackメッセージ(通知)をDMで送る方法

スポンサーリンク

こんにちは!

今回は「GASでslack通知をDMとして送る方法」についてお伝えしたいと思います。

方法は3つほどありますが、botで送る方法がおすすめなので、そちらを紹介したいと思います。

Slack通知は便利なのですが、送り過ぎは嫌がられるので注意が必要ですね。笑

chat.postMessageを使ってbotユーザーからDMを送る

chat.postMessageでユーザーIDを指定すると、botユーザーからDMとしてslackメッセージを送ることができます。
(厳密にはDMではないかもしれませんが、説明のためDMと書かせてもらってます)

イメージとしては、以下の画像のようにサードバー下部のApp>botでメッセージを確認することができます。

ちなみに、もう一つの方法であるIncoming Webhookで送ると、ダイレクトメッセージ(DM)>自分自身に対して送られます。
自分自身のDMはメモ代わりに使ったりしている人もいるので、botから送ってあげた方が区別できるので親切だと思います。

1. slack apiのページにログインする

slack apiのページにアクセスします。

2. 画面右上のyour appsから編集権限を追加したいアプリを選択します

対象のアプリを選択します。

3. サイドバーからAuth & Permissionsを選択し、Scopesに「chat:write」と入力して追加

選択すると、Scopesの一覧に「chat:write」が追加されると思います。

4. 同じくAuth & Permissionsを選択し、Auth Tokens for Your Workspaceからtokenを追加

Auth Tokensがまだ生成されていない場合、新規で追加する必要があります。

Auth Tokens for Your Workspaceの「install to Workspace」をクリックします。

クリックすると別画面に遷移しますが、許可を選択します。

tokenが生成されていればOKです。(トークンは後ほど使います)

5. GASを修正

const sendSlack = (message, userId) => {
  console.log('slack send start');
  const authToken = 'xoxb-xxxxxxxxxxxx'; // 生成したtokenを設定
  const postUrl = "https://slack.com/api/chat.postMessage";

  const payload = {
    "token" : authToken,
    "channel": userId, // 送信先を設定
    "text" : message,
  };
  const options = {
    "method" : "post",
    "payload" : payload
  };
  UrlFetchApp.fetch(postUrl, options);
  console.log('slack send end');
}
sendSlack('test msg', 'ABCD1234'); // 第2引数にはslackのuserIdを設定する

実行すれば、設定したuserIdに対して、DMでメッセージが送信されます。

 

以上、お疲れさまでした〜🍵

 

スポンサーリンク

-プログラミング, エンジニア全般

© 2022 エンジニア×ライフハック Powered by AFFINGER5