devn00b c2c6bf7610 Initial Upload of Bot 1 year ago
..
discord c2c6bf7610 Initial Upload of Bot 1 year ago
examples c2c6bf7610 Initial Upload of Bot 1 year ago
.gitignore c2c6bf7610 Initial Upload of Bot 1 year ago
README.md c2c6bf7610 Initial Upload of Bot 1 year ago
composer.json c2c6bf7610 Initial Upload of Bot 1 year ago

README.md

discord-interactions-php

Types and helper functions that may come in handy when you implement a Discord Interactions webhook.

Installation

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

Usage

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";
}