「Slackボットを作りたいけど環境構築が面倒」と感じていませんか
社内の問い合わせ対応やちょっとした情報整理をSlack上で自動化したい。そう思ってボット開発を調べ始めたものの、サーバーの用意やインフラ管理の話が出てきて手が止まった、という方は多いのではないでしょうか。常時起動のサーバーを借りて、Node.jsのプロセスを管理して……と考えるだけで腰が重くなりますよね。
実はその工程、Cloudflare Workersを使うとかなり省略できます。JX通信社のエンジニアブログでも紹介されているとおり、サーバーレス環境でSlackボットを動かす構成は非常に相性が良く、AIを組み合わせた応答ボットも短時間で形にできます。
この記事でできるようになること
この記事を読めば、Cloudflare Workers上でSlackからのメッセージを受け取り、AI(ChatGPTなどの生成AI API)に問い合わせて返答するボットを、自分の手で組み立てられるようになります。専用サーバーを持たない個人開発や、小規模チームでの検証用途にちょうどいい規模感です。
サーバー管理から解放されて、コードとAPIキーの設定だけに集中できるのがCloudflare Workersの一番の魅力です。
手順1:準備するもの
始める前に、次の3つを用意しておきましょう。
- Slackのワークスペース(管理者権限があると作業がスムーズです)
- Cloudflareアカウント(無料プランでも試せます)
- 生成AIのAPIキー(ChatGPTなど、利用するサービスのもの)
無料枠の範囲でも十分に検証できるので、まずは費用をかけずに試してみるのがおすすめです。
Cloudflareを活用したセキュアな設定方法はこちらをご覧ください → 無料で使えるCloudflare Accessで自宅のローカルAIに安全に外部からアクセスする設定手順
手順2:Slack Appを作成する
Slack API管理画面から新しいAppを作成し、以下を設定します。
Event Subscriptionsを有効化し、後で発行するWorkersのURLをリクエストURLに登録Bot Token Scopesにchat:writeとapp_mentions:readを追加App Homeでメッセージタブを有効化
ここで発行されるBot User OAuth TokenとSigning Secretは、あとの設定で必ず使うのでメモしておいてください。正直この画面はスコープの設定項目が多く、最初は迷いやすいポイントです。焦らず一つずつ確認していきましょう。
手順3:Cloudflare Workersのプロジェクトを作成する
ローカル環境でWranglerを使ってプロジェクトを立ち上げます。
npm create cloudflare@latest my-slack-bot
cd my-slack-bot
テンプレートは「Hello World」の最小構成で問題ありません。ここに必要なロジックを足していく形になります。
手順4:Slackイベントを受信する処理を書く
Workersのエントリーポイントで、SlackからのPOSTリクエストを受け取り、署名を検証したうえでイベント本文を取り出します。
- SlackのURL検証チャレンジ(
url_verification)への応答を最初に実装する app_mentionイベントを受け取ったらメッセージ本文を取得する
この署名検証の部分は省略したくなりますが、セキュリティ上必須なので必ず組み込んでください。ここを飛ばすと後々の運用で痛い目を見ます。
手順5:AI APIと連携させる
受け取ったメッセージをAIのAPIに渡し、返答をSlackのchat.postMessageエンドポイントで投稿します。環境変数にはAPIキーとSlackトークンを設定し、コード中には直書きしないようにしましょう。
wrangler secret put OPENAI_API_KEY
wrangler secret put SLACK_BOT_TOKEN
個人的には、まず固定文言を返すだけの状態で一度Slack連携が成立するかを確認してから、AI呼び出しを追加する順番がやりやすいと感じています。一気に作ると、どこでつまずいたか分かりにくくなるためです。
AI APIの認証設定について、詳しくはこちらで解説しています → AWS MCP ServerがOAuth 2.1に対応、AIエージェント接続の認証はどう変わる?
手順6:デプロイして動作確認する
wrangler deploy
デプロイ後に発行されるURLをSlackのEvent Subscriptionsに登録し直し、Slack上でボットにメンションしてみましょう。数秒でAIからの返答が返ってくれば成功です。
この一連の流れをすべて無料枠の範囲で試せる点も、Cloudflare Workersを選ぶ理由になります。
つまずきやすいポイントと対処
実際に手を動かすと、いくつか引っかかりやすい箇所があります。
- Slackの3秒タイムアウト:Slackはイベント受信後3秒以内の応答を求めます。AI応答に時間がかかる場合は、先に受信確認だけ返し、非同期で結果を投稿する設計にしましょう。
- 署名検証のタイムスタンプずれ:サーバー側の時刻設定がずれていると検証に失敗します。エラーが出たらまずここを疑ってください。
- 環境変数の反映漏れ:
wrangler secret putはデプロイ環境に対して設定されるため、ローカルの.dev.varsにも別途記載が必要です。ここは筆者も最初戸惑ったところなので、公式ドキュメントを見ながら落ち着いて確認すると良いでしょう。
ポイント:まずは応答を返すだけの最小構成で動作確認し、そこからAI連携やエラーハンドリングを段階的に追加していくと、問題の切り分けがしやすくなります。
まとめ
Cloudflare Workersを使ったAI Slackボットは、サーバー管理の手間を大きく減らしながら、実務でも使える応答自動化を実現できる構成です。最初はSlack App側の設定項目の多さに戸惑うかもしれませんが、手順を一つずつ踏めば、今日中に最初の動作確認まで進められるはずです。まずは固定文言を返すところから、気軽に手を動かしてみてはいかがでしょうか。
スキルを収入に変えるなら
AIツールで身につけたスキルは、クラウドソーシングで仕事にできます。販売手数料が業界最安級の「クラウディア」なら、初心者でも小さく始めやすいのが特徴です。



コメント