PHPのWebhook受信処理を完全解説!初心者でもわかるPHPのAPI開発入門
生徒
「PHPでWebhookを受信するって聞いたんですが、Webhookって何ですか?」
先生
「Webhookは、他のサービスから自動でデータが送られてくる仕組みのことです。PHPではその受信処理を作ることができます。」
生徒
「パソコンをほとんど触ったことがなくても理解できますか?」
先生
「大丈夫です。Webhookの考え方からPHPでの受け取り方まで、順番に説明します。」
1. Webhookとは何かを超かんたんに説明
Webhookとは、インターネット上のサービス同士が自動で連絡を取り合うための仕組みです。たとえば、宅配便の配達通知のように「何かが起きたらすぐ知らせる」役割を持っています。PHPのWebhook受信処理とは、外部サービスから送られてきた情報をPHPで受け取るAPI開発の一部です。
APIとは、簡単に言うと「機械同士の会話ルール」です。WebhookはそのAPIの中でも、相手から話しかけてくれるタイプだと考えると理解しやすいです。
2. PHPでWebhookを受信する全体の流れ
PHPのWebhook受信処理は、とてもシンプルな流れです。まず、PHPファイルを1つ用意します。そのファイルに、外部サービスがデータを送信します。PHPはそのデータを受け取り、必要な処理を行います。
このとき、ブラウザで見る画面は不要です。裏側で動く見えない処理がWebhook受信処理の特徴です。
3. PHPでWebhookを受け取る最小構成の例
まずは、とにかくWebhookを受け取るだけのシンプルなPHPコードを見てみましょう。難しいことは考えず、「受け取れるんだな」と感じてください。
<?php
$data = file_get_contents('php://input');
file_put_contents('log.txt', $data);
?>
このコードでは、外部から送られてきたデータをそのままファイルに保存しています。php://inputは「今まさに送られてきた中身」という意味です。
4. JSON形式のWebhookデータを理解しよう
Webhookでは、JSONという形式でデータが送られてくることが多いです。JSONとは、情報をまとめた文字のかたまりです。PHPではJSONを配列に変換して扱います。
<?php
$json = file_get_contents('php://input');
$data = json_decode($json, true);
echo $data['message'];
?>
json_decodeは、JSONをPHPで使いやすい形に変換する関数です。これでWebhookの中身を自由に取り出せます。
5. Webhookが届いたかを確認する方法
Webhook受信処理では、「ちゃんと受け取れたよ」と相手に返事をすることが大切です。これをHTTPステータスコードと呼びます。PHPでは特に意識しなくても、echoするだけで基本は問題ありません。
<?php
http_response_code(200);
echo 'OK';
?>
OK
この「200」は「正常に受け取った」という意味です。Webhookの世界ではとても重要な合図です。
6. セキュリティの基本的な考え方
Webhookは誰でもアクセスできる場所に置かれることが多いため、最低限のセキュリティ意識が必要です。たとえば、特定の文字が含まれているかを確認するだけでも、不正なアクセスを減らせます。
<?php
$data = file_get_contents('php://input');
if (strpos($data, 'secret') === false) {
exit;
}
?>
これは「合言葉」がない場合は処理を止める簡単な例です。Webhook受信処理では、このような考え方が大切です。
7. WebhookとPHPのAPI開発の関係
PHPのWebhook受信処理は、API開発の第一歩としてとても人気があります。画面を作らず、データのやり取りだけに集中できるため、初心者でも理解しやすいです。
「外からデータが届く」「PHPで受け取る」「必要な処理をする」という流れを理解できれば、PHPのAPI開発の基礎がしっかり身につきます。