SlackWebhook

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

ActionStylejson converter

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.

See https://api.slack.com/docs/message-formatting#how_to_escape_characters for more.

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

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

WithAuthor(name,linkUrl,iconUrl) method

Summary

With author name, and optional link url and icon url

Parameters

Name

Type

Description

name

System.String

Author name (required)

linkUrl

System.String

Author link url (optional)

iconUrl

System.String

Author icon url (optional)

Remarks

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

A valid URL that will hyperlink the AuthorNametext mentioned above. Will only work if AuthorNameis present.

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

WithColor(hexColor) method

Summary

With hex-based color

Parameters

Name

Type

Description

hexColor

System.String

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

With color from Colorinstance

Parameters

Name

Type

Description

color

System.Drawing.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

System.String

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

System.String

Title of field

Shown as a bold heading above the value text. It cannot contain markup and will be escaped for you. | | value | System.String | 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 | System.Boolean | Whether field can be shown side-by-side with other fields (optional) | | enableFormatting | System.Boolean | Whether or not to enable formatting for value |

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

System.String

iconUrl

System.String

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

System.String

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.

Summary

With link on attachment title

Parameters

Name

Type

Description

url

System.String

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

System.String

Test shown on link button

url

System.String

URL opened if link button is pressed

style

System.Nullable{SlackWebhook.Enums.ActionStyle}

Optional style

Remarks

An attachment may contain multiple actions

WithPreText(text,enableFormatting) method

Summary

With optional pre-text

Parameters

Name

Type

Description

text

System.String

Pre-text

enableFormatting

System.Boolean

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

System.String

Text

enableFormatting

System.Boolean

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

System.String

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

System.DateTimeOffset

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

System.Int32

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

System.String

Title

Remarks

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

ISlackClient type

Namespace

SlackWebhook

Summary

Slack client

SendAsync(configureBuilder) method

Summary

Send new SlackMessageby configuring the provided ISlackMessageBuilder

Parameters

Name

Type

Description

configureBuilder

System.Action{SlackWebhook.ISlackMessageBuilder}

Configure message to send using this builder

Exceptions

Name

Description

SlackWebhook.Exceptions.SlackMessageValidationException

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

Uses Validateto perform validation. |

SendAsync(message) method

Summary

Send the provided SlackMessage

Parameters

Name

Type

Description

message

SlackWebhook.Messages.SlackMessage

Slack message to send

Exceptions

Name

Description

SlackWebhook.Exceptions.SlackMessageValidationException

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

Uses Validateto perform validation. |

ISlackMessageBuilder type

Namespace

SlackWebhook

Summary

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

Build() method

Summary

Build SlackMessagebased on current state of the builder

Returns

New message

Parameters

This method has no parameters.

Exceptions

Name

Description

SlackWebhook.Exceptions.SlackMessageValidationException

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

Uses Validateto perform validation. |

WithAttachment(configureAttachment) method

Summary

With attachment build with provided attachment builder

Parameters

Name

Type

Description

configureAttachment

System.Action{SlackWebhook.ISlackAttachmentBuilder}

Attachment builder

Remarks

Adds a new SlackAttachmentto Attachmentsbuilt using provided ISlackAttachmentBuilder

WithChannel(channel) method

Summary

With channel

Parameters

Name

Type

Description

channel

System.String

The channel.

Remarks

Sets the Channelproperty

WithIcon(iconType,urlOrEmoji) method

Summary

With icon (url or emoji)

Parameters

Name

Type

Description

iconType

SlackWebhook.Enums.IconType

Type of icon

urlOrEmoji

System.String

URL or emoji name (depending on iconType)

Remarks

Sets the IconUrlor IconEmojibased on iconTypewith the provided value urlOrEmoji

WithText(text,enableFormatting) method

Summary

With required message text

Parameters

Name

Type

Description

text

System.String

Message text

enableFormatting

System.Boolean

Whether or not to enable formatting for text

Remarks

Sets the Textand EnableFormattingproperties.

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

System.String

Username

Remarks

Sets the Usernameproperty

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

System.Collections.Generic.ICollection{SlackWebhook.Exceptions.ValidationError}@

Validation errors (if any found)

Remarks

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

SlackAttachment type

Namespace

SlackWebhook.Messages

Summary

Optional attachment to a SlackMessage.

See https://api.slack.com/docs/message-attachments for more details

FormattingFields constants

Summary

Used to enable formatting of the Fieldsvalue fields

FormattingPretext constants

Summary

Used to enable formatting of the PreTextfield

FormattingText constants

Summary

Used to enable formatting of the Textfield

Actions property

Summary

Actions shown at the bottom of the message (optional)

AuthorIcon property

Summary

Author icon URL (optional)

Remarks

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

Summary

Author link (optional)

Remarks

A valid URL that will hyperlink the AuthorNametext mentioned above. Will only work if AuthorNameis present.

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

Enable formatting for various fields of the attachment, use FormattingText, FormattingPretextand FormattingFieldsto contorl which fields have formatting enabled.

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)

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

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

Summary

Link of title (optional)

Clone() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SetColor(color) method

Summary

Set color hex code from Color

Parameters

Name

Type

Description

color

System.Drawing.Color

Color to set color hex from

SetTimestamp(timestamp) method

Summary

Set Timestampepoch value based on provided date time

Parameters

Name

Type

Description

timestamp

System.DateTimeOffset

Timestamp to set epohc time from

Validate() method

Summary

Inherit from parent.

Parameters

This method has no parameters.

SlackAttachmentAction type

Namespace

SlackWebhook.Messages

Summary

Optional action to se SlackAttachment.

#ctor(type) constructor

Summary

Initialize attachment action

Parameters

Name

Type

Description

type

System.String

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

Enables or disables formatting by adding/removing formattingTypefrom EnableFormatting

Parameters

Name

Type

Description

formattingType

System.String

Formatting type

enable

System.Boolean

Whether to enable (add) or disable (remove)

SlackAttachmentField type

Namespace

SlackWebhook.Messages

Summary

Optional attachment field added to Fields

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

Button action which will open a Url, if clicked

#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

Either provide this OR IconUrl, but not both

IconUrl property

Summary

Icon URL to show before username (optional)

Remarks

Either provide this OR IconEmoji, but not both

Text property

Summary

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

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

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

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

System.String

Exception message

validationErrors

System.Collections.Generic.IEnumerable{SlackWebhook.Exceptions.ValidationError}

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

System.String

Type where validation error occurred

propertyName

System.String

Property which failed validation

error

System.String

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.