この操作をする場所
- Webhook の設定:ハッカソンの作成・編集画面の Step 11(Pro プラン)
- Webhook の一覧:左下の 組織設定 → Webhook タブ
- アクセストークン:左下の 組織設定 → アクセストークン タブ(発行は組織の管理者のみ)
Webhook:応募・キャンセルを外部に知らせる
Webhook を設定すると、参加者が応募したときやキャンセルしたときに、指定した URL へ参加者の情報を自動で送ります。Google Apps Script(GAS)や Zapier で受け取れば、次のようなことを自動にできます。- 応募があったら、運営のスプレッドシートに1行足す
- 応募した人に、Discord のロールを付ける
- キャンセルが出たら、運営の Slack に知らせる
設定する
1
Step 11 を開く
ハッカソンの作成・編集画面で Step 11 を開き、いちばん下の Webhook通知設定(任意) までスクロールします。
2
Webhook を有効にする
Webhookを有効にする をオンにします。
3
URL とシークレットを入れる
- Webhook URL(必須):受け取る側の URL です。
httpかhttpsで始まる URL を入れます。例:GAS のウェブアプリの URL(https://script.google.com/macros/s/…/exec) - 署名シークレット(任意):入れると、送るデータに署名が付きます。受け取る側で、CraftStadium から届いたものかを確かめられます(署名を確かめる)
4
保存する
ハッカソンを保存すると、次の応募から送られます。
送られるタイミング
当落の確定、チームの編成、成果物の提出では送られません。
送られるデータ
JSON で POST します。応募したとき
participationType:参加の仕方です。team_creation(チームを作る)、matching(マッチング)、solo(ソロ)のいずれかです。チームの組み方を参加者が選ばないハッカソンでは入りませんallowMatching:マッチングを受け入れるかどうかです。入らないこともあります- キャンセルのときは
eventがhackathon.cancellationになり、participantにはregisteredAtなどの代わりにcancelledAt(キャンセルした日時)が入ります
署名を確かめる
署名シークレットを入れると、リクエストのヘッダーに次の値が付きます。
署名は、
X-Webhook-Timestamp の値と . と、受け取ったデータ(リクエストの本文そのまま)をつないだ文字列を、署名シークレットを鍵にして HMAC-SHA256 で計算したものです。受け取る側で同じ計算をして、一致するかを確かめてください。
Node.js の例
GAS のウェブアプリでは、受け取ったリクエストのヘッダーを読めないため、署名は確かめられません。GAS で受ける場合は、URL を運営の中だけで共有してください。
気をつけること
GAS で受け取る例
応募があるたびに、スプレッドシートに1行足す例です。スプレッドシートの 拡張機能 → Apps Script に貼り付け、デプロイ → 新しいデプロイ で種類を「ウェブアプリ」、アクセスできるユーザーを「全員」にしてデプロイし、表示された URL を Webhook URL に入れます。Apps Script
アクセストークン:Claude などから Organize を操作する
アクセストークンを発行すると、Claude(Claude Desktop・Claude Code)などのツールから、画面を開かずに Organize を操作できます。今できるのは次の操作です。- 組織の情報、主催者の一覧、企画の一覧、企画の中のハッカソンの一覧を見る
- 企画を作る
- ハッカソンを下書きで作る(公開の設定や日程は Organize の画面で入れます)
発行する
1
発行画面を開く
組織設定 → アクセストークン タブで、トークンを発行する を押します。組織の管理者にだけ表示されます。
2
名前・有効期限・権限を選ぶ
- トークン名(必須):何に使うかがわかる名前。例:「事務局の Claude 用」
- 有効期限:90日(最初の選択)、180日、無期限から選びます
- 権限:読み書き可能(発行者と同じ権限) か 読み取り専用 を選びます。読み取り専用にすると、見るだけで、作成・更新・削除はできません
3
トークンをコピーする
発行する を押すと、
cs_pat_ で始まるトークンが表示されます。この画面を閉じると、二度と表示できません。 コピーして、パスワードと同じように安全な場所に保管してから、コピーしました。閉じる を押します。Claude から使う
Claude Desktop の場合は、設定 → Developer → Edit Config で開く設定ファイルに、次を足して保存し、Claude Desktop を完全に終了してから起動し直します。cs_pat_... は発行したトークンに置き換えます。
claude_desktop_config.json
発行した画面には CLI(
craft-stadium auth login)でログインするコマンドも表示されますが、CLI は今のところ一般には配布していません。Claude から使ってください。
