Struct serenity::model::webhook::Webhook[][src]

#[non_exhaustive]
pub struct Webhook { pub id: WebhookId, pub kind: WebhookType, pub avatar: Option<String>, pub channel_id: ChannelId, pub guild_id: Option<GuildId>, pub name: Option<String>, pub token: Option<String>, pub user: Option<User>, }
Expand description

A representation of a webhook, which is a low-effort way to post messages to channels. They do not necessarily require a bot user or authentication to use.

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
id: WebhookId

The unique Id.

Can be used to calculate the creation date of the webhook.

kind: WebhookType

The type of the webhook.

avatar: Option<String>

The default avatar.

This can be modified via ExecuteWebhook::avatar_url.

channel_id: ChannelId

The Id of the channel that owns the webhook.

guild_id: Option<GuildId>

The Id of the guild that owns the webhook.

name: Option<String>

The default name of the webhook.

This can be modified via ExecuteWebhook::username.

token: Option<String>

The webhook’s secure token.

user: Option<User>

The user that created the webhook.

Note: This is not received when getting a webhook by its token.

Implementations

Deletes the webhook.

As this calls the Http::delete_webhook_with_token function, authentication is not required.

Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the webhook does not exist, the token is invalid, or if the webhook could not otherwise be deleted.

Edits the webhook in-place. All fields are optional.

To nullify the avatar, pass Some(""). Otherwise, passing None will not modify the avatar.

Refer to Http::edit_webhook for httprictions on editing webhooks.

As this calls the Http::edit_webhook_with_token function, authentication is not required.

Examples

Editing a webhook’s name:


let id = 245037420704169985;
let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV";

let mut webhook = http.get_webhook_with_token(id, token).await?;

webhook.edit(&http, Some("new name"), None).await?;

Setting a webhook’s avatar:

let id = 245037420704169985;
let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV";

let mut webhook = http.get_webhook_with_token(id, token).await?;

let image = serenity::utils::read_image("./webhook_img.png")?;

webhook.edit(&http, None, Some(&image)).await?;
Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the content is malformed, or if the token is invalid.

Or may return an Error::Json if there is an error in deserialising Discord’s response.

Executes a webhook with the fields set via the given builder.

The builder provides a method of setting only the fields you need, without needing to pass a long set of arguments.

Examples

Execute a webhook with message content of test:

let id = 245037420704169985;
let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV";

let mut webhook = http.get_webhook_with_token(id, token).await?;

webhook
    .execute(&http, false, |mut w| {
        w.content("test");
        w
    })
    .await?;

Execute a webhook with message content of test, overriding the username to serenity, and sending an embed:

use serenity::model::channel::Embed;

let id = 245037420704169985;
let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV";

let mut webhook = http.get_webhook_with_token(id, token).await?;

let embed = Embed::fake(|mut e| {
    e.title("Rust's website");
    e.description(
        "Rust is a systems programming language that runs
                   blazingly fast, prevents segfaults, and guarantees
                   thread safety.",
    );
    e.url("https://rust-lang.org");
    e
});

webhook
    .execute(&http, false, |mut w| {
        w.content("test");
        w.username("serenity");
        w.embeds(vec![embed]);
        w
    })
    .await?;
Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the content is malformed, or if the webhook’s token is invalid.

Or may return an Error::Json if there is an error deserialising Discord’s response.

Edits a webhook message with the fields set via the given builder.

Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the content is malformed, the webhook’s token is invalid, or the given message Id does not belong to the current webhook.

Or may return an Error::Json if there is an error deserialising Discord’s response.

Deletes a webhook message.

Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the webhook’s token is invalid or the given message Id does not belong to the current webhook.

Retrieves the latest information about the webhook, editing the webhook in-place.

As this calls the Http::get_webhook_with_token function, authentication is not required.

Errors

Returns an Error::Model if the Self::token is None.

May also return an Error::Http if the http client errors or if Discord returns an error. Such as if the Webhook was deleted.

Or may return an Error::Json if there is an error deserialising Discord’s response.

Returns the url of the webhook.

assert_eq!(hook.url(), "https://discord.com/api/webhooks/245037420704169985/ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV")
Errors

Returns an Error::Model if the Self::token is None.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more