SlackWebhook
  • README
  • Changelog
  • SlackWebhook
Powered by GitBook
On this page
  • SlackWebhook
  • Contents
  • ActionStyle type
  • ActionStyleJsonConverter type
  • FormattedTextEncoder type
  • ICloneable`1 type
  • IconType type
  • ISlackAttachmentBuilder type
  • ISlackClient type
  • ISlackMessageBuilder type
  • IValidateable type
  • SlackAttachment type
  • SlackAttachmentAction type
  • SlackAttachmentBuilder type
  • SlackAttachmentField type
  • SlackAttachmentLinkButtonAction type
  • SlackClient type
  • SlackMessage type
  • SlackMessageBuilder type
  • SlackMessageValidationException type
  • ValidationError type

SlackWebhook

PreviousChangelog

Last updated 6 years ago

SlackWebhook

Contents

ActionStyle type

Namespace

SlackWebhook.Enums

Summary

Action type

Danger constants

Summary

Turns the button red and indicates it some kind of destructive action

Primary constants

Summary

Turns the button green and indicates the best forward action to take

ActionStyleJsonConverter type

Namespace

SlackWebhook.Core

Summary

ReadJson() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WriteJson() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

FormattedTextEncoder type

Namespace

SlackWebhook.Core

Summary

Handles escaping characters which the Slack webhook expects to be HTML encoded.

ICloneable`1 type

Namespace

SlackWebhook.Core

Summary

Cloneable type

Generic Types

Name

Description

T

Type of clone

Clone() method

Summary

Creates new clone of this instance

Returns

Cloned instance

Parameters

This method has no parameters.

IconType type

Namespace

SlackWebhook.Enums

Summary

Icon type

Emoji constants

Summary

Icon is a slack emoji name, e.g.

smile

Url constants

Summary

Icon is a image URL

ISlackAttachmentBuilder type

Namespace

SlackWebhook

Summary

WithAuthor(name,linkUrl,iconUrl) method

Summary

With author name, and optional link url and icon url

Parameters

Name

Type

Description

name

Author name (required)

linkUrl

Author link url (optional)

iconUrl

Author icon url (optional)

Remarks

The author parameters will display a small section at the top of a message attachment.

WithColor(hexColor) method

Summary

With hex-based color

Parameters

Name

Type

Description

hexColor

Hex color or one of named colors (good, warning, danger)

Remarks

Like traffic signals, color-coding messages can quickly communicate intent and help separate them from the flow of other messages in the timeline.

An optional value that can either be one of good, warning, danger, or any hex color code(eg. #439FE0). This value is used to color the border along the left side of the message attachment.

WithColor(color) method

Summary

Parameters

Name

Type

Description

color

Color instance to set color from

WithFallback(fallback) method

Summary

With required plain-text summary of the attachment

Returns

Parameters

Name

Type

Description

fallback

Remarks

A plain-text summary of the attachment. This text will be used in clients that don't show formatted text (eg. IRC, mobile notifications) and should not contain any markup.

WithField(title,value,isShort,enableFormatting) method

Summary

With attachment field shown as a table inside the message attachment

Parameters

Name

Type

Description

title

Title of field

Remarks

If enableFormattingis enabled, you can use Slack message formatting in valueand it will automatically be encoded according to slack encoding rules.

WithFooter(text,iconUrl) method

Summary

With footer text and optional footer icon

Returns

Parameters

Name

Type

Description

text

iconUrl

Remarks

Add some brief text to help contextualize and identify an attachment. Limited to 300 characters, and may be truncated further when displayed to users in environments with limited screen real estate.

To render a small icon beside your footer text, provide a publicly accessible URL string in the footer_icon field. You must also provide a footer for the field to be recognized.

We'll render what you provide at 16px by 16px. It's best to use an image that is similarly sized.

WithImage(url) method

Summary

With image url

Parameters

Name

Type

Description

url

Image url

Remarks

A valid URL to an image file that will be displayed inside a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.

Large images will be resized to a maximum width of 400px or a maximum height of 500px, while still maintaining the original aspect ratio.

WithLink(url) method

Summary

With link on attachment title

Parameters

Name

Type

Description

url

Remarks

Link of title (optional)

WithLinkButtonAction(text,url,style) method

Summary

With link button action, shown at the bottom of the attachment

Parameters

Name

Type

Description

text

Test shown on link button

url

URL opened if link button is pressed

style

Optional style

Remarks

An attachment may contain multiple actions

WithPreText(text,enableFormatting) method

Summary

With optional pre-text

Parameters

Name

Type

Description

text

Pre-text

enableFormatting

Whether or not to enable formatting for text

Remarks

This is optional text that appears above the message attachment block.

WithText(text,enableFormatting) method

Summary

With optional text

Parameters

Name

Type

Description

text

Text

enableFormatting

Whether or not to enable formatting for text

Remarks

This is the main text in a message attachment, and can contain standard message markup. The content will automatically collapse if it contains 700+ characters or 5+ linebreaks, and will display a "Show more..." link to expand the content. Links posted in the text field will not unfurl.

If enableFormattingis enabled, you can use Slack message formatting in textand it will automatically be encoded according to slack encoding rules.

WithThumbnail(url) method

Summary

With thumbnail url

Parameters

Name

Type

Description

url

Thumbnail url

Remarks

A valid URL to an image file that will be displayed as a thumbnail on the right side of a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.

The thumbnail's longest dimension will be scaled down to 75px while maintaining the aspect ratio of the image. The filesize of the image must also be less than 500 KB.

For best results, please use images that are already 75px by 75px.

WithTimestamp(timestamp) method

Summary

With timestamp based on timestamp

Parameters

Name

Type

Description

timestamp

DateTimeOffset to set timestamp from

Remarks

Does your attachment relate to something happening at a specific time?

By providing the ts field with an integer value in "epoch time", the attachment will display an additional timestamp value as part of the attachment's footer.

Use ts when referencing articles or happenings.Your message will have its own timestamp when published.

Example: Providing 123456789 would result in a rendered timestamp of Nov 29th, 1973.

WithTimestamp(epochTime) method

Summary

With epoc timestamp

Parameters

Name

Type

Description

epochTime

Epoch timestamp

Remarks

Does your attachment relate to something happening at a specific time?

By providing the ts field with an integer value in "epoch time", the attachment will display an additional timestamp value as part of the attachment's footer.

Use ts when referencing articles or happenings.Your message will have its own timestamp when published.

Example: Providing 123456789 would result in a rendered timestamp of Nov 29th, 1973.

WithTitle(title) method

Summary

With required title

Parameters

Name

Type

Description

title

Title

Remarks

ISlackClient type

Namespace

SlackWebhook

Summary

Slack client

SendAsync(configureBuilder) method

Summary

Parameters

Name

Type

Description

configureBuilder

Configure message to send using this builder

Exceptions

Name

Description

Thrown if validation of the message fails, such as if a required field is missing.

SendAsync(message) method

Summary

Parameters

Name

Type

Description

message

Slack message to send

Exceptions

Name

Description

Thrown if validation of the message fails, such as if a required field is missing.

ISlackMessageBuilder type

Namespace

SlackWebhook

Summary

Build() method

Summary

Returns

New message

Parameters

This method has no parameters.

Exceptions

Name

Description

Thrown if validation of the message fails, such as if a required field is missing.

WithAttachment(configureAttachment) method

Summary

With attachment build with provided attachment builder

Parameters

Name

Type

Description

configureAttachment

Attachment builder

Remarks

WithChannel(channel) method

Summary

With channel

Parameters

Name

Type

Description

channel

The channel.

Remarks

WithIcon(iconType,urlOrEmoji) method

Summary

With icon (url or emoji)

Parameters

Name

Type

Description

iconType

Type of icon

urlOrEmoji

URL or emoji name (depending on iconType)

Remarks

WithText(text,enableFormatting) method

Summary

With required message text

Parameters

Name

Type

Description

text

Message text

enableFormatting

Whether or not to enable formatting for text

Remarks

If enableFormattingis enabled, you can use Slack message formatting in textand it will automatically be encoded according to slack encoding rules.

WithUsername(username) method

Summary

With username

Parameters

Name

Type

Description

username

Username

Remarks

IValidateable type

Namespace

SlackWebhook.Core

Summary

Object can be validated

Validate(validationErrors) method

Summary

Validates the current state of the object (including any nested validateable members)

Returns

True if the object is valid, false otherwise

Parameters

Name

Type

Description

validationErrors

Validation errors (if any found)

Remarks

Will find all (if any) validation errors and populate validationErrorswith each

SlackAttachment type

Namespace

SlackWebhook.Messages

Summary

FormattingFields constants

Summary

FormattingPretext constants

Summary

FormattingText constants

Summary

Actions property

Summary

Actions shown at the bottom of the message (optional)

AuthorIcon property

Summary

Author icon URL (optional)

Remarks

AuthorLink property

Summary

Author link (optional)

Remarks

AuthorName property

Summary

Author name (optional)

Remarks

The author parameters will display a small section at the top of a message attachment

Color property

Summary

Gets or sets the color.

Remarks

Like traffic signals, color-coding messages can quickly communicate intent and help separate them from the flow of other messages in the timeline.

An optional value that can either be one of good, warning, danger, or any hex color code(eg. #439FE0). This value is used to color the border along the left side of the message attachment.

EnableFormatting property

Summary

Fallback property

Summary

Required plain-text summary of the attachment

Remarks

A plain-text summary of the attachment. This text will be used in clients that don't show formatted text (eg. IRC, mobile notifications) and should not contain any markup.

Fields property

Summary

Fields shown as a table inside the message attachment (optional)

Footer property

Summary

Footer text shown at the bottom of attachment (optional)

Remarks

Add some brief text to help contextualize and identify an attachment. Limited to 300 characters, and may be truncated further when displayed to users in environments with limited screen real estate.

FooterIcon property

Summary

Icon shown left of footer text (optional)

Remarks

To render a small icon beside your footer text, provide a publicly accessible URL string in the footer_icon field. You must also provide a footer for the field to be recognized.

We'll render what you provide at 16px by 16px. It's best to use an image that is similarly sized.

ImageUrl property

Summary

Image url (optional)

Remarks

A valid URL to an image file that will be displayed inside a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.

Large images will be resized to a maximum width of 400px or a maximum height of 500px, while still maintaining the original aspect ratio.

PreText property

Summary

Optional text that appears above the attachment block

Remarks

This is optional text that appears above the message attachment block.

Text property

Summary

Optional text that appears within the attachment

Remarks

This is the main text in a message attachment, and can contain standard message markup. The content will automatically collapse if it contains 700+ characters or 5+ linebreaks, and will display a "Show more..." link to expand the content. Links posted in the text field will not unfurl.

ThumbnailUrl property

Summary

Thumbnail url (optional)

Remarks

A valid URL to an image file that will be displayed as a thumbnail on the right side of a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.

The thumbnail's longest dimension will be scaled down to 75px while maintaining the aspect ratio of the image. The filesize of the image must also be less than 500 KB.

For best results, please use images that are already 75px by 75px.

Timestamp property

Summary

Timestamp (epoch time) shown below attachment (optional)

Remarks

Does your attachment relate to something happening at a specific time?

By providing the ts field with an integer value in "epoch time", the attachment will display an additional timestamp value as part of the attachment's footer.

Use ts when referencing articles or happenings.Your message will have its own timestamp when published.

Example: Providing 123456789 would result in a rendered timestamp of Nov 29th, 1973.

Title property

Summary

Title of attachment (required)

Remarks

TitleLink property

Summary

Link of title (optional)

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SetColor(color) method

Summary

Parameters

Name

Type

Description

color

Color to set color hex from

SetTimestamp(timestamp) method

Summary

Parameters

Name

Type

Description

timestamp

Timestamp to set epohc time from

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackAttachmentAction type

Namespace

SlackWebhook.Messages

Summary

#ctor(type) constructor

Summary

Initialize attachment action

Parameters

Name

Type

Description

type

Type of action

Text property

Summary

Text displayed for the action

Remarks

How this is presented depends on the type of action

Type property

Summary

Type of action

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackAttachmentBuilder type

Namespace

SlackWebhook

SetEnableFormatting(formattingType,enable) method

Summary

Parameters

Name

Type

Description

formattingType

Formatting type

enable

Whether to enable (add) or disable (remove)

SlackAttachmentField type

Namespace

SlackWebhook.Messages

Summary

Short property

Summary

Whether field can be shown side-by-side with other fields (optional)

Title property

Summary

Title of field

Remarks

Shown as a bold heading above the value text. It cannot contain markup and will be escaped for you.

Value property

Summary

Value of field (may contain formatting if enabled)

Remarks

The text value of the field. It may contain standard message markup and must be escaped as normal. May be multi-line.

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackAttachmentLinkButtonAction type

Namespace

SlackWebhook.Messages

Summary

#ctor() constructor

Summary

Create new empty link button action

Parameters

This constructor has no parameters.

Style property

Summary

Optional style

Url property

Summary

URL to open if link button is clicked

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackClient type

Namespace

SlackWebhook

Summary

Inherit from parent.

#ctor() constructor

Summary

Inherit from parent.

Parameters

This constructor has no parameters.

SendAsync() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SendAsync() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackMessage type

Namespace

SlackWebhook.Messages

Summary

Basis for a Slack message which can be sent to the webhook URL

Attachments property

Summary

Attachments to show below message (optional)

Channel property

Summary

Channel the message is posted into (optional)

EnableFormatting property

Summary

Whether or not to enable formatting for this message

Remarks

Default true

IconEmoji property

Summary

Icon emoji name () (optional)

Remarks

IconUrl property

Summary

Icon URL to show before username (optional)

Remarks

Text property

Summary

Remarks

You can use the regular Slack formatting

    *bold* `code` _italic_ ~strike~

and also include links

    <URL|title>

Username property

Summary

Username shown (optional)

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

ThrowIfInvalid() method

Summary

Parameters

This method has no parameters.

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackMessageBuilder type

Namespace

SlackWebhook

Summary

Inherit from parent.

#ctor() constructor

Summary

Create new slack message builder

Parameters

This constructor has no parameters.

Build() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WithAttachment() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WithChannel() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WithIcon() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WithText() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

WithUsername() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackMessageValidationException type

Namespace

SlackWebhook.Exceptions

Summary

Slack message validation exception

#ctor(message,validationErrors) constructor

Summary

Create new validation exception

Parameters

Name

Type

Description

message

Exception message

validationErrors

Validation errors

ValidationErrors property

Summary

Validations errors

ValidationError type

Namespace

SlackWebhook.Exceptions

Summary

Validation error details

#ctor(typeName,propertyName,error) constructor

Summary

Create new validation error

Parameters

Name

Type

Description

typeName

Type where validation error occurred

propertyName

Property which failed validation

error

Validation error

Error property

Summary

Validation error

PropertyName property

Summary

Property which failed validation

TypeName property

Summary

Type where validation error occurred

ToString() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

json converter

See for more.

Slack attachment builder used to configure an attachment to be added to a

A valid URL that will hyperlink the text mentioned above. Will only work if is present.

A valid URL that displays a small 16x16px image to the left of the text. Will only work if is present.

With color from instance

Shown as a bold heading above the value text. It cannot contain markup and will be escaped for you. | | value | | Value of field (may contain formatting if enabled)

The text value of the field. It may contain standard message markup and must be escaped as normal. May be multi-line. | | isShort | | Whether field can be shown side-by-side with other fields (optional) | | enableFormatting | | Whether or not to enable formatting for value |

The title is displayed as larger, bold text near the top of a message attachment. By passing a valid URL in the parameter (optional), the title text will be

Send new by configuring the provided

Uses to perform validation. |

Send the provided

Uses to perform validation. |

Slack message builder that produces instances based on the builder's current configuration.

Build based on current state of the builder

Uses to perform validation. |

Adds a new to built using provided

Sets the property

Sets the or based on iconTypewith the provided value urlOrEmoji

Sets the and properties.

Sets the property

Optional attachment to a .

See for more details

Used to enable formatting of the value fields

Used to enable formatting of the field

Used to enable formatting of the field

A valid URL that displays a small 16x16px image to the left of the text. Will only work if is present.

A valid URL that will hyperlink the text mentioned above. Will only work if is present.

Enable formatting for various fields of the attachment, use , and to contorl which fields have formatting enabled.

The title is displayed as larger, bold text near the top of a message attachment. By passing a valid URL in the parameter (optional), the title text will be hyperlinked.

Set color hex code from

Set epoch value based on provided date time

Optional action to se .

Enables or disables formatting by adding/removing formattingTypefrom

Optional attachment field added to

Button action which will open a , if clicked

Either provide this OR , but not both

Either provide this OR , but not both

Message text which may contain formatting (unless is deactivated) and can span multiple lines.

Checks the current state using and throws a with all validations errors, if any are found.

https://api.slack.com/docs/message-formatting#how_to_escape_characters
Color
System.String
System.Boolean
System.Boolean
https://api.slack.com/docs/message-attachments
Color
ActionStyle
Danger
Primary
ActionStyleJsonConverter
ReadJson()
WriteJson()
FormattedTextEncoder
ICloneable`1
Clone()
IconType
Emoji
Url
ISlackAttachmentBuilder
WithAuthor(name,linkUrl,iconUrl)
WithColor(hexColor)
WithColor(color)
WithFallback(fallback)
WithField(title,value,isShort,enableFormatting)
WithFooter(text,iconUrl)
WithImage(url)
WithLink(url)
WithLinkButtonAction(text,url,style)
WithPreText(text,enableFormatting)
WithText(text,enableFormatting)
WithThumbnail(url)
WithTimestamp(timestamp)
WithTimestamp(epochTime)
WithTitle(title)
ISlackClient
SendAsync(configureBuilder)
SendAsync(message)
ISlackMessageBuilder
Build()
WithAttachment(configureAttachment)
WithChannel(channel)
WithIcon(iconType,urlOrEmoji)
WithText(text,enableFormatting)
WithUsername(username)
IValidateable
Validate(validationErrors)
SlackAttachment
FormattingFields
FormattingPretext
FormattingText
Actions
AuthorIcon
AuthorLink
AuthorName
Color
EnableFormatting
Fallback
Fields
Footer
FooterIcon
ImageUrl
PreText
Text
ThumbnailUrl
Timestamp
Title
TitleLink
Clone()
SetColor(color)
SetTimestamp(timestamp)
Validate()
SlackAttachmentAction
#ctor(type)
Text
Type
Clone()
Validate()
SlackAttachmentBuilder
SetEnableFormatting(formattingType,enable)
SlackAttachmentField
Short
Title
Value
Clone()
Validate()
SlackAttachmentLinkButtonAction
#ctor()
Style
Url
Clone()
Validate()
SlackClient
#ctor()
SendAsync()
SendAsync()
SlackMessage
Attachments
Channel
EnableFormatting
IconEmoji
IconUrl
Text
Username
Clone()
ThrowIfInvalid()
Validate()
SlackMessageBuilder
#ctor()
Build()
WithAttachment()
WithChannel()
WithIcon()
WithText()
WithUsername()
SlackMessageValidationException
#ctor(message,validationErrors)
ValidationErrors
ValidationError
#ctor(typeName,propertyName,error)
Error
PropertyName
TypeName
ToString()
ActionStyle
SlackMessage
AuthorName
AuthorName
AuthorName
AuthorName
TitleLink
SlackMessage
ISlackMessageBuilder
Validate
SlackMessage
Validate
SlackMessage
SlackMessage
Validate
SlackAttachment
Attachments
ISlackAttachmentBuilder
Channel
IconUrl
IconEmoji
Text
EnableFormatting
Username
SlackMessage
Fields
PreText
Text
AuthorName
AuthorName
AuthorName
AuthorName
FormattingText
FormattingPretext
FormattingFields
TitleLink
Timestamp
SlackAttachment
EnableFormatting
Fields
Url
IconUrl
IconEmoji
EnableFormatting
Validate
SlackMessageValidationException
System.String
System.String
System.String
System.String
System.Drawing.Color
System.String
System.String
System.String
System.String
System.String
System.String
System.String
System.String
System.Nullable{SlackWebhook.Enums.ActionStyle}
System.String
System.Boolean
System.String
System.Boolean
System.String
System.DateTimeOffset
System.Int32
System.String
System.Action{SlackWebhook.ISlackMessageBuilder}
System.Action{SlackWebhook.ISlackAttachmentBuilder}
System.String
System.String
System.String
System.Boolean
System.String
System.Collections.Generic.ICollection{SlackWebhook.Exceptions.ValidationError}@
System.Drawing.Color
System.DateTimeOffset
System.String
System.String
System.Boolean
System.String
System.Collections.Generic.IEnumerable{SlackWebhook.Exceptions.ValidationError}
System.String
System.String
System.String
SlackWebhook.Exceptions.SlackMessageValidationException
SlackWebhook.Messages.SlackMessage
SlackWebhook.Exceptions.SlackMessageValidationException
SlackWebhook.Exceptions.SlackMessageValidationException
SlackWebhook.Enums.IconType