現代のオンラインコミュニケーションにおいて、Discord(ディスコード)は、ゲーマー、コミュニティメンバー、プロジェクトチームなど
多くの人々にとって欠かせないコミュニケーションツールとなっています。
Discordの利用がますます広まるにつれて、情報のリアルタイムな共有がますます重要になっています。
Discordテキストチャンネルへの通知を活用することで、情報の共有がスムーズに行え、コミュニケーションが効果的になります。
この記事では、PHPを使用してDiscordテキストチャンネルに通知を送る方法についてわかりやすく説明し、Web開発者やDiscordコミュニティのメンバーにとって有益な情報を提供します。
DiscordへのWebhook通知
DiscordへのWebhook通知は、Slackと同様に非常に便利なツールで、特定のイベントや情報をリアルタイムで通知するために利用できます。
これを活用することで、メール通知を代替し、Discordの特定のチャンネルに通知を自動的に送信でき、情報の見逃しを防ぐことができます。
必要な前提条件
- Discordアカウント: Discord通知を行うためには、まずDiscordのアカウントが必要です。
アカウントを持っていない場合は、こちらでアカウントを登録してください。
- Discordチャンネル: 通知を送るためには、Discordサーバーを作成し、通知するためのチャンネルを用意する必要があります。
チャンネルの作成方法が不明な場合は、こちらを参考にしてください。
- PHPの基本知識: この記事ではPHPを使用して通知を送信しますので、PHPの基本知識が必要です。
PHPの基本知識を持っていない場合は、こちらで学習してください。
実装方法
- Discordにログイン: まず、Discordにログインし、通知を送りたいサーバーやチャンネルにアクセスします。
- チャンネルの設定: 通知を送りたいテキストチャンネルを選択し、チャンネル設定に進みます。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/ae0c50e99e0f4a0294563dfd610e1220/Discord1.png?w=250&h=281)
- Webhookの作成: チャンネル設定内で、[連携サービス]を選択します。
また、「ウェブフックを作成」をクリックすると、新しいWebhookが作成できます。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/ee314b4afeaa4138bbd42fe848e3779e/Untitled%20(13).png?w=1024&h=451)
作成すると、下記のように新しいWebhookが見えます。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/9bf79950d2884a3d8f11a8767c97851f/Discord%204.png?w=1024&h=383)
※Webhookの名前やアイコンなどを設定できます。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/abe077c560e6437eb2b8f2d944a65566/Untitled%20(14).png?w=1024&h=603)
- Webhook URLの取得: Webhookが作成されたら、「ウェブフックURLをコーピ」をクリックして、Webhook URLを取得します。
このURLを外部アプリケーションやスクリプトから使用して、Discordチャンネルに通知を送信します。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/be7b99ef37d549c282459fa8bf60a373/Untitled%20(15).png?w=1024&h=753)
- 通知の送信: 外部アプリケーションやスクリプト内で、Webhook URLを使用して通知メッセージを作成し、Webhookに送信します。
通知は即座に指定したチャンネルに表示されます。
こちらには、PHPを使って通信します。
<?php
function sendToDiscord() {
//コーピしたWebhookURLを設定
$webhookUrl = "https://discord.com/api/webhooks/1111111111111111111/HHHHwbUGjdOyy_B2buPu06npzLGRHl9uKmHwfbasmRryfLB0lItb8jMvVacKmPRZFLp";
//通知メセッジを設定
//ユーザーIDでメンションしたい場合は、<@discord_user_id>で設定
//eg.,'content' => "<@1095224863111111111> Hello, this message is coming from PHP!",
$message = [
'content' => "Hello, this message is coming from PHP!",
];
$ch = curl_init($webhookUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($message));
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo 'Message sent successfully.';
}
curl_close($ch);
}
sendToDiscord();
?>
- PHPファイルを実行: PHPファイルを実行することで、メッセージが送信されます。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/bba37bc3b5c744019a058145688bbb35/Discord%205.png?w=1024&h=936)