🐓

Firebase Cloud Functionsでwebhookを使ってSlackに投稿する

2021/12/19に公開

Cloud Functionsでwebhookを使って、slackに投稿するメモ。

Slackの設定

Slack Appを作る

まずは以下のURLからSlack Appを作ります。名前と追加したいSlackのスペースを選択します。

https://api.slack.com/apps

Incoming Webhooksを有効化する

Slack Appを作った後の画面にある「Add features and functionality」の中の「Incoming Webhooks」を選択。

Activate Incoming Webhooksを「On」にします。

Webhook URLを生成する

Incoming Webhooksを有効化した後、画面下にある「Add New Webhook to Workspace」をクリック

遷移した先の画面で投稿先のチャンネルを選択しURLを生成します。

Cloud Functions

@slack/webhook追加

Cloud Functionsの package.json があるディレクトリで @slack/webhook を追加する

yarn add @slack/webhook

定期実行でSlackに投稿してみる

今回は定期実行でサンプルテキストをSlackに投稿してみます。

import * as functions from 'firebase-functions'
import { IncomingWebhook } from '@slack/webhook'

exports.scheduledFunctionCrontab = functions.pubsub
  .schedule('0 7 * * *')
  .timeZone('Asia/Tokyo')
  .onRun(async (context) => {
    // 取得したwebhook urlを記入
    const webhook = new IncomingWebhook( 'https://hooks.slack.com/services/xxxxxxxxxx'
    )

    const params = {
      text: `こけこっこー`,
    }

    await webhook.send(params)
    return
  })

これで毎朝7時に通知がきます。

Discussion