https://monpetitweb.hook
La base du processus est curl, qui permet d'envoyer des requêtes web.
Exemple, en ligne de commande :
curl -H "Content-Type: application/json" -d '{"username": "monpetitbot", "content": "bonjour le monde"}' "https://monpetitweb.hook"
username est un nom symbolique pour votre application, si vous ne l'utilisez pas c'est le nom du webhook qui sera affiché.
content est le message.
N'oubliez pas d'installer l'extension cURL pour PHP :
sudo apt install php-curl
Ce qui donne pour le formulaire en PHP (avec du HTML basique et sans style) :
<html>
<head>
<title>Message Discord</title>
</head>
<body>
<h1>Message Discord</h1>
<form action="" method="post" accept-charset="utf-8">
<p><label>Message</label><input type="text" id="eventmsg" name="eventmsg" value="" size="80"></p>
<p><button type="submit" id="submitbutton">Envoyer</button></p>
</form>
<?php
if (isset($_POST['eventmsg'])) {
// webhook défini sur le canal dans lequel on va poster
$webhook_url = 'https://monpetitweb.hook';
// message composé du username et du contenu
$msg = [
"username" => "monpetitbot",
"content" => $_POST['eventmsg'],
];
$headers = array('Content-Type: application/json');
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, $webhook_url );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $msg ) );
$response = curl_exec( $ch );
// si ça se passe mal on affiche l'erreur en rouge
if ($response === FALSE) {
echo "<p style=\"color:red;\">Erreur ".curl_error($ch)."</p>";
}
// message envoyé
else {
echo "<p style=\"color:green;\">Message envoyé</p>";
}
curl_close( $ch );
} else {
}
?>
</body>
</html>
Le formulaire, de qualité :