iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Node.js】Firebase Functions から Slack Web API を使って Slack に通知を送る

Firebase Functions での処理の結果を Slack に通知したいという場面があったので、僕が行った実装方法を紹介したいと思います🧑‍🔧

それではやっていく

まずは通知を知らせるためのアプリを作成し、OAuth Access Token を取得(今回は Bot を使用します)・通知を送信するチャンネルにアプリを追加するところまでを完了させましょう。こちらの手順については下記の記事に大変わかりやすく記載されているので割愛します🙏

qiita.com

次に、Slack Web API を使用するためのモジュールをインストールします。ちなみに今回は Firebase Functions で使用する想定なので、functions ディレクトリに移動してから下記を実行します。

$ npm install @slack/web-api

インストールが完了したら、取得しておいた OAuth Access TokenFirebase Functions環境変数としてセットして、より安全にトークンを使用しましょう。僕は karasu_token と名付けて保存しました🦅

$ firebase functions:config:set slack.karasu_token="TOKEN"

次に SlackWebClient を下記のように初期化して取得します。

const { WebClient } = require('@slack/web-api');
const slackClient = new WebClient(functions.config().slack.karasu_token);

上記手順が完了したら、あとは slackClient から chat.postMessage() を呼び出せば任意のチャンネルに任意のメッセージを送信することができるようになります🎉

async function sendMessageToSlack(message) {
    await slackClient.chat.postMessage({ text: message, channel: 'firebase-functions-notice' });
}

postMessage() の他の引数については下記を参照してみてください👀

api.slack.com

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com