discord / interactions
Utils for implementing the Discord Interactions API
Installs: 204 944
Dependents: 7
Suggesters: 0
Security: 0
Stars: 43
Watchers: 13
Forks: 13
Open Issues: 3
Requires (Dev)
- simplito/elliptic-php: ^1.0
Suggests
- simplito/elliptic-php: Required to validate interaction signatures.
Conflicts
- simplito/elliptic-php: <1.0,>=1.1
README
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"; }