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.NewEmbed().
WithDescription("hello world!"),
)
message, err := client.CreateMessage(discord.NewWebhookMessageCreate().
WithContent("hello world!"),
rest.CreateWebhookMessageParams{},
)
message, err := client.CreateMessage(discord.WebhookMessageCreate{
Content: "hello world!",
}, rest.CreateWebhookMessageParams{})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.NewEmbed().
WithDescription("hello world!"),
)
message, err := client.UpdateMessage("870741249114652722", discord.NewWebhookMessageUpdate().
WithContent("hello world!"),
rest.UpdateWebhookMessageParams{},
)
message, err := client.UpdateMessage("870741249114652722", discord.WebhookMessageUpdate{
Content: json.Ptr("hello world!"),
}, rest.UpdateWebhookMessageParams{})or deleted
client := webhook.New(snowflake.ID("webhookID"), "webhookToken")
err := client.DeleteMessage("message_id")a full example can be found here