class Webhook

export class Webhook<Type extends WebhookType = WebhookType>

Represents a webhook.

Type Parameters

optional
Type? extends WebhookType = WebhookType

applicationId : Type extends WebhookType.Application ? Snowflake : null

The application that created this webhook

avatar : string | null

The avatar for the webhook

The channel the webhook belongs to

channelId : Snowflake

The id of the channel the webhook belongs to

readonly
client : Client

The client that instantiated the webhook

readonly
createdAt : Date

The time the webhook was created at

readonly
createdTimestamp : number

The timestamp the webhook was created at

guildId : Snowflake

The guild the webhook belongs to

id : Snowflake

The webhook's id

name : string

The name of the webhook

owner : Type extends WebhookType.Incoming ? User | APIUser | null : User | APIUser

The owner of the webhook

The source channel of the webhook

sourceGuild : Type extends WebhookType.ChannelFollower ? Guild | APIPartialGuild : null

The source guild of the webhook

token : Type extends WebhookType.Incoming ? string : Type extends WebhookType.ChannelFollower ? null : string | null

The token for the webhook, unavailable for follower webhooks and webhooks owned by another application.

type : Type

The type of the webhook

readonly
url : string

The URL of this webhook

avatarURL(
options?: ImageURLOptions
) : string | null

A link to the webhook's avatar.

delete(
reason?: string
) : Promise<void>

Deletes the webhook.

deleteMessage(
message: MessageResolvable | '@original'
threadId?: Snowflake
) : Promise<void>

Delete a message that was sent by this webhook.

Edits this webhook.

Edits a message that was sent by this webhook.

Returns: Returns the message edited by this webhook

fetchMessage() : Promise<Message>

Gets a message that was sent by this webhook.

Returns: Returns the message sent by this webhook

isApplicationCreated() : this is Webhook<WebhookType.Application>

Whether this webhook is created by an application.

isChannelFollower() : this is Webhook<WebhookType.ChannelFollower>

Whether or not this webhook is a channel follower webhook.

isIncoming() : this is Webhook<WebhookType.Incoming>

Whether or not this webhook is an incoming webhook.

isUserCreated() : this is Webhook<WebhookType.Incoming> & { owner: User | APIUser; }

Whether this webhook is created by a user.

Sends a message with this webhook.

Examples:
// Send a basic message
webhook.send('hello!')
  .then(message => console.log(`Sent message: ${message.content}`))
  .catch(console.error);
// Send a basic message in a thread
webhook.send({ content: 'hello!', threadId: '836856309672348295' })
  .then(message => console.log(`Sent message: ${message.content}`))
  .catch(console.error);
// Send a remote file
webhook.send({
  files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']
})
  .then(console.log)
  .catch(console.error);
// Send a local file
webhook.send({
  files: [{
    attachment: 'entire/path/to/file.jpg',
    name: 'file.jpg'
  }]
})
  .then(console.log)
  .catch(console.error);
// Send an embed with a local image inside
webhook.send({
  content: 'This is an embed',
  embeds: [{
    thumbnail: {
         url: 'attachment://file.jpg'
      }
   }],
   files: [{
      attachment: 'entire/path/to/file.jpg',
      name: 'file.jpg'
   }]
})
  .then(console.log)
  .catch(console.error);

sendSlackMessage(
body: object
) : Promise<boolean>

Sends a raw slack message with this webhook.

Examples:
// Send a slack message
webhook.sendSlackMessage({
  'username': 'Wumpus',
  'attachments': [{
    'pretext': 'this looks pretty cool',
    'color': '#F0F',
    'footer_icon': 'http://snek.s3.amazonaws.com/topSnek.png',
    'footer': 'Powered by sneks',
    'ts': Date.now() / 1_000
  }]
}).catch(console.error);