bootdesk / chat-sdk-adapter-discord
Discord adapter for bootdesk/chat-sdk-core
Package info
github.com/bootdesk/chat-sdk-adapter-discord
pkg:composer/bootdesk/chat-sdk-adapter-discord
0.2.4
2026-05-18 23:13 UTC
Requires
- php: >=8.2
- ext-json: *
- bootdesk/chat-sdk-core: ^0.2.4
- php-http/multipart-stream-builder: ^1.4
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- phpunit/phpunit: ^11.0
README
Discord adapter for the laravel-bootdesk multi-platform messaging framework.
Install
composer require bootdesk/chat-sdk-adapter-discord
Requires a PSR-18 HTTP client (guzzlehttp/guzzle, symfony/http-client, etc.) and a PSR-17 factory (nyholm/psr7 bundled).
Configuration
| Variable | Description | Example |
|---|---|---|
bot_token |
Discord Bot Token | MTk4NjIy... |
http_client |
PSR-18 HTTP client instance | new GuzzleHttp\Client |
public_key |
Application Public Key | abcdef123456... |
application_id |
Discord Application ID | 1234567890 |
use BootDesk\ChatSDK\Discord\DiscordAdapter; $adapter = new DiscordAdapter( botToken: env('DISCORD_BOT_TOKEN'), httpClient: new \GuzzleHttp\Client, publicKey: env('DISCORD_PUBLIC_KEY'), applicationId: env('DISCORD_APPLICATION_ID'), );
Laravel
The ChatServiceProvider auto-binds Psr\Http\Client\ClientInterface to GuzzleHttp\Client. Add to config/chat.php:
'discord' => [ 'bot_token' => env('DISCORD_BOT_TOKEN'), 'public_key' => env('DISCORD_PUBLIC_KEY'), 'application_id' => env('DISCORD_APPLICATION_ID'), ],
Quick Example
// Post a message to a Discord channel $adapter->postMessage('discord:1234567890', 'Hello from laravel-bootdesk!'); // Reply to a specific message $adapter->postMessage('discord:1234567890:9876543210', 'Thread reply');
Thread ID Format
| Format | Description |
|---|---|
discord:{channelId} |
Channel message |
discord:{channelId}:{messageId} |
Reply to a specific message |
Webhook
Discord sends Interactions via POST to your endpoint. Verify requests using Ed25519 signature verification with the public key.
Feature Matrix
| Feature | Supported |
|---|---|
| Post messages | ✓ |
| Edit messages | ✓ |
| Delete messages | ✓ |
| Reactions | ✓ |
| Typing indicator | ✓ |
| Fetch messages | ✓ |
| Fetch thread info | ✓ |
| Fetch channel info | ✓ |
| Get user | ✓ |
| Open DM | ✗ |
| Stream | ✓ |
Notes
Supports slash commands, buttons, select menus, modals, and application commands.
License
MIT