Types and helper functions that may come in handy when you implement a Discord Interactions webhook.
Install from packagist:
composer require discord/interactions
Validating request signatures requires the simplito/elliptic-php
package to be installed, which requires the php-gmp
extension to be enabled:
composer require simplito/elliptic-php
Use InteractionType
and InteractionResponseType
to interpret and respond to webhooks.
Use InteractionResponseFlags
to make your response special.
Use verifyKey
to check a request signature. Note you must install the simplito/elliptic-php
package first. For example:
use Discord\Interaction;
use Discord\InteractionResponseType;
$CLIENT_PUBLIC_KEY = getenv('CLIENT_PUBLIC_KEY');
$signature = $_SERVER['HTTP_X_SIGNATURE_ED25519'];
$timestamp = $_SERVER['HTTP_X_SIGNATURE_TIMESTAMP'];
$postData = file_get_contents('php://input');
if (Interaction::verifyKey($postData, $signature, $timestamp, $CLIENT_PUBLIC_KEY)) {
echo json_encode(array(
'type' => InteractionResponseType::PONG
));
} else {
http_response_code(401);
echo "Not verified";
}