team-reflex/discord-php
DiscordPHP is a PHP wrapper for Discord’s REST, gateway, and voice APIs. Build Discord bots that run in CLI with ReactPHP-style async handling. Includes limited docs/class reference and community integrations like Laracord for Laravel.
Interactions are utilized in message components and slash commands.
| name | type | description |
|---|---|---|
| id | string | id of the interaction. |
| application_id | string | id of the application associated to the interaction. |
| int | type | type of interaction. |
| data | ?InteractionData |
data associated with the interaction. |
| guild | ?Guild |
guild interaction was triggered from, null if DM. |
| channel | ?Channel |
channel interaction was triggered from. |
| member | ?Member |
member that triggered interaction. |
| user | User |
user that triggered interaction. |
| token | string | internal token for responding to interaction. |
| version | int | version of interaction. |
| message | ?Message |
message that triggered interaction. |
| locale | ?string | The selected language of the invoking user. |
| guild_locale | ?string | The guild's preferred locale, if invoked in a guild. |
The locale list can be seen on Discord API reference.
The following functions are used to respond an interaction after being created Event::INTERACTION_CREATE,
responding interaction with wrong type throws a LogicException
| name | description | valid for interaction type |
|---|---|---|
acknowledgeWithResponse(?bool $ephemeral) |
acknowledges the interaction, creating a placeholder response to be updated | APPLICATION_COMMAND, MESSAGE_COMPONENT, MODAL_SUBMIT |
acknowledge() |
defer the interaction | MESSAGE_COMPONENT, MODAL_SUBMIT |
respondWithMessage(MessageBuilder $builder, ?bool $ephemeral) |
responds to the interaction with a message. ephemeral is default false | APPLICATION_COMMAND, MESSAGE_COMPONENT, MODAL_SUBMIT |
autoCompleteResult(array $choices) |
responds a suggestion to options with auto complete | APPLICATION_COMMAND_AUTOCOMPLETE |
showModal(string $title, string $custom_id, array $components, ?callable $submit = null) |
responds to the interaction with a popup modal | other than PING and MODAL_SUBMIT |
The following functions can be only used after interaction respond above,
otherwise throws a RuntimeException "Interaction has not been responded to."
| name | description | return |
|---|---|---|
updateMessage(MessageBuilder $message) |
updates the message the interaction was triggered from. only for message component interaction | Promise<void> |
getOriginalResponse() |
gets the original interaction response | Promise<Message> |
updateOriginalResponse(MessageBuilder $message) |
updates the original interaction response | Promise<Message> |
deleteOriginalResponse() |
deletes the original interaction response | Promise<void> |
sendFollowUpMessage(MessageBuilder $builder, ?bool $ephemeral) |
sends a follow up message to the interaction. ephemeral is defalt false | Promise<Message> |
getFollowUpMessage(string $message_id) |
gets a non ephemeral follow up message from the interaction | Promise<Message> |
updateFollowUpMessage(string $message_id, MessageBuilder $builder) |
updates the follow up message of the interaction | Promise<Message> |
deleteFollowUpMessage(string $message_id) |
deletes a follow up message from the interaction | Promise<void> |
How can I help you explore Laravel packages today?