Cloudflare Workers で Slack Bot を構築する際のハマりポイント
セットアップ手順の順序が重要
Slack の Event Subscriptions で Request URL を入力すると、即座に URL Verification チャレンジが送信される。Worker がデプロイ済み+Secrets設定済みでないと検証が失敗する。
正しい順序: Slack App 作成(URL は仮)→ Install → デプロイ&Secrets設定 → URL を本番に更新
Worker URL のサブドメインは予測できない
wrangler deploy の出力で初めて https://{worker-name}.{subdomain}.workers.dev が確定する。README にプレースホルダーを書くなら、デプロイ後に更新するフローを明記すること。サブドメインはアカウントごとに異なる。
PEM 秘密鍵は対話入力ではなくパイプで渡す
# NG: 対話入力だと改行が壊れる
wrangler secret put GITHUB_APP_PRIVATE_KEY
# OK: パイプ形式
cat /path/to/private-key.pem | wrangler secret put GITHUB_APP_PRIVATE_KEY
AI Gateway ID の確認方法
Cloudflare ダッシュボード → AI → AI Gateway で表示されるゲートウェイ名がそのまま ID。default という名前なら ID も default。Account ID は npx wrangler whoami で確認できる。
GitHub App Installation ID の確認方法
gh api /orgs/{org}/installations \
--jq '.installations[] | select(.app_slug=="your-app") | .id'