Expand description
discord_hook — Send messages to Discord via webhooks.
§Quick start
use discord_hook::{WebhookClient, WebhookMessage, Embed};
#[tokio::main]
async fn main() -> Result<(), discord_hook::WebhookError> {
let client = WebhookClient::new("https://discord.com/api/webhooks/ID/TOKEN")?;
let message = WebhookMessage::builder()
.content("Hello from discord_hook!")
.username("MyBot")
.embed(
Embed::builder()
.title("Rich embed")
.description("Supports titles, fields, colours, and more.")
.color(0x5865F2) // Discord blurple
.field("Library", "discord_hook", true)
.build(),
)
.build()?;
client.send(&message).await
}§Rate limits
When Discord returns HTTP 429 the client surfaces a
WebhookError::RateLimited error that contains retry_after_ms.
Use that value to back off before retrying.
Re-exports§
pub use client::WebhookClient;pub use client::WebhookClientBuilder;pub use error::WebhookError;pub use message::AllowedMentionType;pub use message::AllowedMentions;pub use message::Embed;pub use message::EmbedAuthor;pub use message::EmbedBuilder;pub use message::EmbedField;pub use message::EmbedImage;pub use message::EmbedThumbnail;pub use message::WebhookMessage;pub use message::WebhookMessageBuilder;pub use message::flags;pub use message::json_code_block;
Modules§
Macros§
- discord_
message - Build a [
WebhookMessage] using key=value syntax. - embed
- Build an [
Embed] using key=value syntax.
Traits§
- Webhook
Sender - Common interface implemented by every hooksmith webhook client.