2026年8月16日
2026年8月16日
WordPressのWebhookを受信して処理する方法
はじめに
Webhooksは、特定のイベントが発生したときに外部システムに情報を送信するためのメカニズムです。この記事では、WordPressでWebhookを受け取る方法と、その受信データを処理するための基本的な手順について説明します。
症状・背景
このテーマが必要になる主な場面:
- WordPress内で特定のイベント(投稿の作成や更新など)が発生したときに外部システム(メールサービス、プロジェクト管理ツール等)に通知を送りたい場合
- Webhookを利用してWordPressと他のアプリケーション間でデータ同期を行いたい場合
- イベント駆動型の自動化フローを構築したい場合
手順・設定方法
ステップ1: Webhookエンドポイントを作成
# WordPressプラグイン「WP Webhooks v2」をインストールします。
wp plugin install wp-webhooks-v2 --activate
# デバッグ用のWebhook URLを生成します。
curl -X POST https://あなたのドメイン/wp-json/webhook/v2/events/new-post-created?secret=your_secret_key
ステップ2: Webhookリクエストを受け取る処理を作成
# Webhookリクエストのヘッダーを確認します。
curl -I https://あなたのドメイン/wp-json/webhook/v2/events/new-post-created?secret=your_secret_key
# リクエストボディを取得します。
curl -X POST https://あなたのドメイン/wp-json/webhook/v2/events/new-post-created?secret=your_secret_key
ステップ3: Webhookリクエストのデータを使用して処理を追加
# JSON形式で受け取ったデータをパースします。
json_data=$(curl -s https://あなたのドメイン/wp-json/webhook/v2/events/new-post-created?secret=your_secret_key | jq '.')
# パースされたJSONデータから必要な情報を取得します。
post_id=$(echo "$json_data" | jq '.data.ID')
# 取得した投稿IDを使用して、WordPressのAPIを呼び出します。
curl -X GET https://あなたのドメイン/wp-json/wp/v2/posts/$post_id?_fields=content
ステップ4: Webhookリクエストのログを追跡する
# Webhookリクエストのログを取得します。
wp webhooks logs --date='today' --limit=10
注意事項
- セキュリティのために、Webhookは秘密キーを使用して保護されるべきです。
- Webhookから受け取るデータが想定外の場合に備えてエラーハンドリングを実装することが重要です。
- パフォーマンスの観点からは、大規模なサイトではWebhookの呼び出し頻度を制限するか、非同期処理を考慮することが望ましい。
まとめ
1. セキュリティ: Webhookは秘密キーを使用して保護すべきです。
2. エラーハンドリング: 想定外のデータを受け取った場合に備えて適切な対応策を用意するべきです。
3. 非同期処理: パフォーマンス上の観点から、大規模なサイトでは非同期処理を考慮すべきです。
4. 監視: Webhookの呼び出し状況やエラー情報を定期的にチェックし、問題が発生した場合に迅速に対応できるようにするべきです。
関連記事: