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
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.
pub async fn edit_message<F>(
&self,
http: impl AsRef<Http>,
message_id: MessageId,
f: F
) -> Result<Message> where
F: FnOnce(&mut EditWebhookMessage) -> &mut EditWebhookMessage,
pub async fn edit_message<F>(
&self,
http: impl AsRef<Http>,
message_id: MessageId,
f: F
) -> Result<Message> where
F: FnOnce(&mut EditWebhookMessage) -> &mut EditWebhookMessage,
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
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Webhook
impl UnwindSafe for Webhook
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
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