SlackWebhook
SlackWebhook
Contents
ActionStyle type
type
Namespace
SlackWebhook.Enums
Summary
Action type
Danger constants
constants
Summary
Turns the button red and indicates it some kind of destructive action
Primary constants
constants
Summary
Turns the button green and indicates the best forward action to take
ActionStyleJsonConverter type
type
Namespace
SlackWebhook.Core
Summary
ActionStylejson converter
ReadJson() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WriteJson() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
FormattedTextEncoder type
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
type
Namespace
SlackWebhook.Core
Summary
Cloneable type
Generic Types
Name | Description |
T | Type of clone |
Clone() method
method
Summary
Creates new clone of this instance
Returns
Cloned instance
Parameters
This method has no parameters.
IconType type
type
Namespace
SlackWebhook.Enums
Summary
Icon type
Emoji constants
constants
Summary
Icon is a slack emoji name, e.g.
Url constants
constants
Summary
Icon is a image URL
ISlackAttachmentBuilder type
type
Namespace
SlackWebhook
Summary
Slack attachment builder used to configure an attachment to be added to a SlackMessage
WithAuthor(name,linkUrl,iconUrl) method
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.
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
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
method
Summary
With color from Colorinstance
Parameters
Name | Type | Description |
color | Color instance to set color from |
WithFallback(fallback) method
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
method
Summary
With attachment field shown as a table inside the message attachment
Parameters
Name | Type | Description |
title | 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 enableFormatting
is enabled, you can use Slack message formatting in value
and it will automatically be encoded according to slack encoding rules.
WithFooter(text,iconUrl) method
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
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
method
Summary
With link on attachment title
Parameters
Name | Type | Description |
url |
Remarks
Link of title (optional)
WithLinkButtonAction(text,url,style) method
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
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
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 enableFormatting
is enabled, you can use Slack message formatting in text
and it will automatically be encoded according to slack encoding rules.
WithThumbnail(url) method
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
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
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
method
Summary
With required title
Parameters
Name | Type | Description |
title | 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
type
Namespace
SlackWebhook
Summary
Slack client
SendAsync(configureBuilder) method
method
Summary
Send new SlackMessageby configuring the provided ISlackMessageBuilder
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. |
Uses Validateto perform validation. |
SendAsync(message) method
method
Summary
Send the provided SlackMessage
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. |
Uses Validateto perform validation. |
ISlackMessageBuilder type
type
Namespace
SlackWebhook
Summary
Slack message builder that produces SlackMessageinstances based on the builder's current configuration.
Build() method
method
Summary
Build SlackMessagebased on current state of the builder
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. |
Uses Validateto perform validation. |
WithAttachment(configureAttachment) method
method
Summary
With attachment build with provided attachment builder
Parameters
Name | Type | Description |
configureAttachment | Attachment builder |
Remarks
Adds a new SlackAttachmentto Attachmentsbuilt using provided ISlackAttachmentBuilder
WithChannel(channel) method
method
Summary
With channel
Parameters
Name | Type | Description |
channel | The channel. |
Remarks
Sets the Channelproperty
WithIcon(iconType,urlOrEmoji) method
method
Summary
With icon (url or emoji)
Parameters
Name | Type | Description |
iconType | Type of icon | |
urlOrEmoji | URL or emoji name (depending on |
Remarks
Sets the IconUrlor IconEmojibased on iconType
with the provided value urlOrEmoji
WithText(text,enableFormatting) method
method
Summary
With required message text
Parameters
Name | Type | Description |
text | Message text | |
enableFormatting | Whether or not to enable formatting for text |
Remarks
Sets the Textand EnableFormattingproperties.
If enableFormatting
is enabled, you can use Slack message formatting in text
and it will automatically be encoded according to slack encoding rules.
WithUsername(username) method
method
Summary
With username
Parameters
Name | Type | Description |
username | Username |
Remarks
Sets the Usernameproperty
IValidateable type
type
Namespace
SlackWebhook.Core
Summary
Object can be validated
Validate(validationErrors) method
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 validationErrors
with each
SlackAttachment type
type
Namespace
SlackWebhook.Messages
Summary
Optional attachment to a SlackMessage.
See https://api.slack.com/docs/message-attachments for more details
FormattingFields constants
constants
Summary
Used to enable formatting of the Fieldsvalue fields
FormattingPretext constants
constants
Summary
Used to enable formatting of the PreTextfield
FormattingText constants
constants
Summary
Used to enable formatting of the Textfield
Actions property
property
Summary
Actions shown at the bottom of the message (optional)
AuthorIcon property
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.
AuthorLink property
property
Summary
Author link (optional)
Remarks
A valid URL that will hyperlink the AuthorNametext mentioned above. Will only work if AuthorNameis present.
AuthorName property
property
Summary
Author name (optional)
Remarks
The author parameters will display a small section at the top of a message attachment
Color property
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
property
Summary
Enable formatting for various fields of the attachment, use FormattingText, FormattingPretextand FormattingFieldsto contorl which fields have formatting enabled.
Fallback property
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
property
Summary
Fields shown as a table inside the message attachment (optional)
Footer property
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
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
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
property
Summary
Optional text that appears above the attachment block
Remarks
This is optional text that appears above the message attachment block.
Text property
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
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
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
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.
TitleLink property
property
Summary
Link of title (optional)
Clone() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SetColor(color) method
method
Summary
Set color hex code from Color
Parameters
Name | Type | Description |
color | Color to set color hex from |
SetTimestamp(timestamp) method
method
Summary
Set Timestampepoch value based on provided date time
Parameters
Name | Type | Description |
timestamp | Timestamp to set epohc time from |
Validate() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackAttachmentAction type
type
Namespace
SlackWebhook.Messages
Summary
Optional action to se SlackAttachment.
#ctor(type) constructor
constructor
Summary
Initialize attachment action
Parameters
Name | Type | Description |
type | Type of action |
Text property
property
Summary
Text displayed for the action
Remarks
How this is presented depends on the type of action
Type property
property
Summary
Type of action
Clone() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
Validate() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackAttachmentBuilder type
type
Namespace
SlackWebhook
SetEnableFormatting(formattingType,enable) method
method
Summary
Enables or disables formatting by adding/removing formattingType
from EnableFormatting
Parameters
Name | Type | Description |
formattingType | Formatting type | |
enable | Whether to enable (add) or disable (remove) |
SlackAttachmentField type
type
Namespace
SlackWebhook.Messages
Summary
Optional attachment field added to Fields
Short property
property
Summary
Whether field can be shown side-by-side with other fields (optional)
Title property
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
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
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
Validate() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackAttachmentLinkButtonAction type
type
Namespace
SlackWebhook.Messages
Summary
Button action which will open a Url, if clicked
#ctor() constructor
constructor
Summary
Create new empty link button action
Parameters
This constructor has no parameters.
Style property
property
Summary
Optional style
Url property
property
Summary
URL to open if link button is clicked
Clone() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
Validate() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackClient type
type
Namespace
SlackWebhook
Summary
Inherit from parent.
#ctor() constructor
constructor
Summary
Inherit from parent.
Parameters
This constructor has no parameters.
SendAsync() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SendAsync() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackMessage type
type
Namespace
SlackWebhook.Messages
Summary
Basis for a Slack message which can be sent to the webhook URL
Attachments property
property
Summary
Attachments to show below message (optional)
Channel property
property
Summary
Channel the message is posted into (optional)
EnableFormatting property
property
Summary
Whether or not to enable formatting for this message
Remarks
Default true
IconEmoji property
property
Summary
Icon emoji name () (optional)
Remarks
Either provide this OR IconUrl, but not both
IconUrl property
property
Summary
Icon URL to show before username (optional)
Remarks
Either provide this OR IconEmoji, but not both
Text property
property
Summary
Message text which may contain formatting (unless EnableFormattingis deactivated) and can span multiple lines.
Remarks
You can use the regular Slack formatting
and also include links
Username property
property
Summary
Username shown (optional)
Clone() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
ThrowIfInvalid() method
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
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackMessageBuilder type
type
Namespace
SlackWebhook
Summary
Inherit from parent.
#ctor() constructor
constructor
Summary
Create new slack message builder
Parameters
This constructor has no parameters.
Build() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WithAttachment() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WithChannel() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WithIcon() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WithText() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
WithUsername() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
SlackMessageValidationException type
type
Namespace
SlackWebhook.Exceptions
Summary
Slack message validation exception
#ctor(message,validationErrors) constructor
constructor
Summary
Create new validation exception
Parameters
Name | Type | Description |
message | Exception message | |
validationErrors | Validation errors |
ValidationErrors property
property
Summary
Validations errors
ValidationError type
type
Namespace
SlackWebhook.Exceptions
Summary
Validation error details
#ctor(typeName,propertyName,error) constructor
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
property
Summary
Validation error
PropertyName property
property
Summary
Property which failed validation
TypeName property
property
Summary
Type where validation error occurred
ToString() method
method
Summary
Inherit from parent.
Parameters
This method has no parameters.
Last updated