【実践入門】Webhookとは?APIとの違い・使い道・WordPressでの受信方法も解説!

こんにちは、フロントエンドエンジニアの田中です。
今回は、最近よく耳にするけど「ちょっととっつきにくい」と感じる方が多いWebhook(ウェブフック)について、できるだけわかりやすく解説します。
僕自身も最初は「APIとどう違うの?」と混乱してましたが、使ってみると便利すぎて、 今では業務の自動化や外部サービス連携には欠かせない存在になっています。
✅ Webhookってなに?ざっくり言うと…
Webhook = 「通知の自動送信装置」のようなものです。
例えばフォームが送信された瞬間に、指定したURLにデータをPOSTしてくれる仕組み。 人間が操作しなくても、イベント発生時に自動で動くのが最大の魅力です。
イメージ的には:
ZapierやStripe、Chatwork → Webhook → 自分の受け口(APIやWordPress)
こんな感じで「通知が届く窓口」を作って、サーバー側で受け取って処理します。
✅ APIとの違いって何?
API:自分から「データちょうだい」と取りに行く(Pull) Webhook:向こうから「今データ送るね」と送られてくる(Push)
API | Webhook |
---|---|
リクエストを投げる必要あり | 自動で送られてくる |
定期的なチェックが必要 | リアルタイム性が高い |
単方向 | イベント駆動型 |
特に**リアルタイム通知**や**イベント駆動型の処理**をしたいときは、Webhookが圧倒的に便利です。
✅ WordPressでWebhookを受け取るには?
REST APIを有効にして、カスタムエンドポイントを作成することで対応可能です。
// functions.php の一例
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/webhook/', array(
'methods' => 'POST',
'callback' => 'receive_webhook',
'permission_callback' => '__return_true'
));
});
function receive_webhook($request) {
$data = $request->get_json_params();
// ここでデータ処理や保存など
return rest_ensure_response(['status' => 'received']);
}
例えば、外部サービスから`https://yourdomain.com/wp-json/custom/v1/webhook/`にPOSTされれば、 自動でその処理を受けられます。
✅ 実際にどんなことに使える?
- ECサイトで注文が入ったら自動で通知 or 会計ソフトと連携
- チャットアプリ(SlackやChatwork)に自動投稿
- フォーム送信内容を別のサービスにリアルタイム連携
工夫次第で、業務の自動化・効率化に大きく貢献してくれます。
💡 まとめ:Webhookは“待ちのAPI”
Webhookは少し敷居が高く見えますが、やっていることはシンプルです。
一度Webhookを使いこなせるようになると、複数サービスの自動連携や通知の最適化が一気に実現できます。
WordPressでも簡単に受信できますので、 「そろそろAPIに踏み込みたい…でも怖い…」という方にも、Webhookはとても良い入り口になりますよ!