Import the package into your project.
import "github.com/disgoorg/disgo/webhook"
Create a new Webhook by webhook_id
and webhook_token
. (This WebhookClient should be created once as it holds important state)
client := webhook.New(snowflake.ID("webhookID"), "webhookToken")
client, err := webhook.NewWithURL("webhookURL")
webhook.New
takes a vararg of type webhook.ConfigOpt
as third argument which lets you pass additional optional parameter like a custom logger, rest client, etc
client := webhook.New(snowflake.ID("webhookID"), "webhookToken",
webhook.WithLogger(logrus.New()),
webhook.WithDefaultAllowedMentions(discord.AllowedMentions{
RepliedUser: false,
}),
)
You can send a message as following
client := webhook.New(snowflake.ID("webhookID"), "webhookToken")
message, err := client.CreateContent("hello world!")
message, err := client.CreateEmbeds(discord.NewEmbedBuilder().
SetDescription("hello world!").
Build(),
)
message, err := client.CreateMessage(webhook.NewWebhookMessageCreateBuilder().
SetContent("hello world!").
Build(),
)
message, err := client.CreateMessage(discord.WebhookMessageCreate{
Content: "hello world!",
})
Messages can also be edited
client := webhook.New(snowflake.ID("webhookID"), "webhookToken")
message, err := client.UpdateContent("870741249114652722", "hello world!")
message, err := client.UpdateEmbeds("870741249114652722", discord.NewEmbedBuilder().
SetDescription("hello world!").
Build(),
)
message, err := client.UpdateMessage("870741249114652722", discord.NewWebhookMessageUpdateBuilder().
SetContent("hello world!").
Build(),
)
message, err := client.UpdateMessage("870741249114652722", discord.WebhookMessageUpdate{
Content: json.Ptr("hello world!"),
})
or deleted
client := webhook.New(snowflake.ID("webhookID"), "webhookToken")
err := client.DeleteMessage("message_id")
a full example can be found here