REST API endpoints for Discord webhooks.
All functions return {:ok, result} or {:error, reason}.
Summary
Functions
Creates a webhook for a channel.
Deletes a webhook.
Deletes a message previously sent by a webhook.
Edits a message previously sent by a webhook.
Executes a webhook.
Gets a webhook by ID.
Gets a message previously sent by a webhook.
Gets webhooks for a channel.
Gets webhooks for a guild.
Modifies a webhook.
Functions
Creates a webhook for a channel.
Deletes a webhook.
@spec delete_message(String.t() | integer(), String.t(), String.t() | integer()) :: :ok | {:error, term()}
Deletes a message previously sent by a webhook.
Uses webhook token authentication (no bot token required).
Examples
:ok = Webhook.delete_message(webhook_id, token, message_id)
@spec edit_message( String.t() | integer(), String.t(), String.t() | integer(), map() | keyword() ) :: {:ok, map()} | {:error, term()}
Edits a message previously sent by a webhook.
Accepts a map or keyword list of message fields to update (content, embeds,
components, allowed_mentions). Supports file attachments via keyword opts.
Examples
{:ok, edited} = Webhook.edit_message(wh_id, token, msg_id, %{content: "updated"})
{:ok, edited} = Webhook.edit_message(wh_id, token, msg_id, content: "updated")
@spec execute(String.t() | integer(), String.t(), map() | keyword()) :: {:ok, map()} | {:error, term()}
Executes a webhook.
Pass wait: true in opts to receive the created message back (required for
subsequent get_message/3, edit_message/4, delete_message/3).
Without wait: true, Discord returns 204 No Content.
Gets a webhook by ID.
@spec get_message(String.t() | integer(), String.t(), String.t() | integer()) :: {:ok, map()} | {:error, term()}
Gets a message previously sent by a webhook.
Uses webhook token authentication (no bot token required).
Examples
{:ok, msg} = Webhook.get_message(webhook_id, token, message_id)
Gets webhooks for a channel.
Gets webhooks for a guild.
Modifies a webhook.