Slack APIの概要
Slack APIを使うことで、業務通知の自動化・コマンドによるシステム操作・チャンネルへの自動投稿・インタラクティブなボットの構築が可能になります。エンジニアチームのCI/CD通知、営業チームのKPI報告、カスタマーサポートのエスカレーション通知など、ビジネスのあらゆる場面でSlack APIは活躍します。
Slack Appの作成手順
- api.slack.comでSlack Appを作成
- 必要な権限(スコープ)を設定(chat:write・channels:read等)
- ボットトークン(xoxb-...)またはアプリレベルトークンを取得
- Webhookエンドポイントを設定(Bot Eventsの受信)
- ワークスペースにアプリをインストール
Incoming Webhookで簡単にメッセージ送信
最もシンプルな方法は Incoming Webhook を使ったメッセージ送信です。CI/CDパイプラインからのデプロイ通知・監視アラートなどに適しています。
const response = await fetch(process.env.SLACK_WEBHOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
text: ':white_check_mark: デプロイが完了しました',
blocks: [
{
type: 'section',
text: {
type: 'mrkdwn',
text: '*デプロイ完了* :rocket:
本番環境への v2.1.0 のデプロイが正常に完了しました。'
}
}
]
})
});
Bolt for JavaScriptでのボット開発
Boltは Slack が公式に提供するボット開発フレームワークです。イベントハンドラーをシンプルに書けて、Socket Mode(Webhookなしでイベントを受け取れる)にも対応しています。
import { App } from '@slack/bolt';
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET
});
// メンションに反応
app.event('app_mention', async ({ event, say }) => {
await say(`<@${event.user}> こんにちは!何かお手伝いできますか?`);
});
// スラッシュコマンド
app.command('/status', async ({ command, ack, respond }) => {
await ack();
await respond('サーバーは正常稼働中です ✅');
});
await app.start(3000);
Block Kitでインタラクティブなメッセージ
Block Kitを使うとボタン・セレクトボックスなどのUI要素を含むメッセージを作れます。承認ワークフロー・投票・フォーム入力などのインタラクティブな機能を実装できます。
Slack Web API
Slack Web APIを使うと、チャンネル一覧取得・メッセージ送信・ファイルアップロード・ユーザー情報取得など、Slackのほぼすべての機能にアクセスできます。chat.postMessage APIは最もよく使われるAPIです。
活用例
- CI/CD通知:GitHub ActionsからのビルドSSLパイプライン通知
- エラーアラート:Sentryのエラーが発生したらチャンネルに通知
- デイリーレポート:毎朝の売上・KPIサマリーを自動投稿
- 承認ワークフロー:経費申請・デプロイ承認をSlack内で完結
- オンコール通知:PagerDutyとSlackを連携したアラート管理
まとめ
Slack APIは業務効率化・チーム間の情報共有・自動化に大きく貢献します。Incoming WebhookとBolt フレームワークを組み合わせることで、シンプルな通知から複雑なインタラクティブボットまで幅広い用途に対応できます。Slack Appを作成してワークスペースに導入し、チームの生産性向上に役立ててください。