Skip to content

Webhooks

エントリやマスタの公開ライフサイクルを、HTTPS エンドポイントへ HMAC 署名付きで通知します。ISR や外部同期のトリガーに使います(Standard 以上)。

できていること(完成形)

項目状態
エンドポイントHTTPS の受信 URL が用意されている
WebhookConsole で作成し、対象イベントを購読している
検証X-Luno-Signature を raw body で検証できる
後続処理公開 API で本文を取り、revalidate 等を実行できる

いつ使うか

  • Next.js などのキャッシュ再検証
  • Slack / 自前ワーカーへの通知
  • 公開と同時に検索インデックスや CDN を更新したいとき

確認チェックリスト

  • [ ] Console → 設定 → Webhook で URL とイベントを登録した
  • [ ] シークレットを環境変数に保存した(再表示なし)
  • [ ] テスト公開で配送履歴に成功がある
  • [ ] 署名検証後に公開 API で本文を取れる

今すぐやる

  1. 受信 URL を用意する(例: /api/webhook/luno
  2. Console で Webhook を作成し、entry.published 等を購読する
  3. エントリを公開して配送を確認する
  4. 受信後に本文を取り直す(ペイロードに data は無い)
bash
curl "https://api.luno.rest/public/p/{projectId}/v1/form-sets/blog/entries/my-first-post?include_snapshot=true"
ts
const { project_id, form_set_slug, entry_slug } = payload
const res = await fetch(
  `https://api.luno.rest/public/p/${project_id}/v1/form-sets/${form_set_slug}/entries/${entry_slug}?include_snapshot=true`
)
bash
# 「entry.published 用の署名検証+revalidate ハンドラを書いて」
  1. 署名検証のコードは Webhook リファレンス

次の一手

目的ページ
ペイロード・署名・実装例Webhook リファレンス
スケジュール公開スケジュール公開
公開読み取り(経路 C)API only 完成形