Documentation ¶
Overview ¶
Package chat implements the types needed to post chat messages to slack.
Index ¶
Constants ¶
View Source
const (
// PostMessageEndpoint is the slack URL endpoint for chat post Message
PostMessageEndpoint = "https://slack.com/api/chat.postMessage"
)
Variables ¶
View Source
var (
// ShortFieldLen is the length of a field value which is to be deemed short.
ShortFieldLen = 20
)
Functions ¶
This section is empty.
Types ¶
type Attachment ¶
type Attachment struct { // Fallback is the plain-text summary of the attachment. Fallback string `json:"fallback"` // Color is a color indicating the classification of the message. Color string `json:"color"` // PreText is optional text that appears above the message attachment block. PreText string `json:"pretext,omitempty"` // AuthorName is the small text used to display the author's name. AuthorName string `json:"author_name,omitempty"` // AuthorLink is a valid URL that will hyperlink the author_name text mentioned above. AuthorLink string `json:"author_link,omitempty"` // AuthorIcon is a valid URL that displays a small 16x16px image to the left of the author_name text. AuthorIcon string `json:"author_icon,omitempty"` // Title is displayed as larger, bold text near the top of a message attachment. Title string `json:"title,omitempty"` // TitleLink is the optional url of the hyperlink to be used for the title. TitleLink string `json:"title_link,omitempty"` // Text is the main text of the attachment. Text string `json:"text,omitempty"` // Fields contains optional fields to be displayed in the in a table inside the attachment. Fields []*Field `json:"fields,omitempty"` // MarkdownIn enables Markdown support. Valid values are ["pretext", "text", "fields"]. // Setting "fields" will enable markup formatting for the value of each field. MarkdownIn []string `json:"mrkdwn_in,omitempty"` // ImageURL is the URL to an image file that will be displayed inside the attachment. ImageURL string `json:"image_url"` // ThumbURL is the URL to an image file that will be displayed as a thumbnail on the right side of a attachment. ThumbURL string `json:"ThumbURL"` Footer string `json:"footer"` FooterIcon string `json:"footer_icon"` // TimeStamp if set is the epoch time that will display as part of the attachment's footer. TimeStamp int `json:"ts,omitempty"` }
Attachment is a slack chat message attachment. See: https://api.slack.com/docs/message-attachments
func (*Attachment) AddField ¶
func (a *Attachment) AddField(f *Field)
AddField adds f to the attachments fields.
func (*Attachment) NewField ¶
func (a *Attachment) NewField(title, value string) *Field
NewField creates a new field, adds it to the attachment and then returns it.
type Field ¶
type Field struct { // Title is shown as a bold heading above the value text. // It cannot contain markup and will be escaped for you. Title string `json:"title"` // Value is the text value of the field. // It may contain standard message markup and must be escaped as normal. // May be multi-line. Value string `json:"value"` // Short is an optional flag indicating whether the value is short enough to be displayed side-by-side with other values. Short bool `json:"short"` }
Field will be displayed in a table inside the message attachment.
type Message ¶
type Message struct { // Token is the Authentication token (Requires scope: chat:write:bot or chat:write:user). Token string `json:"token,omitempty"` // Channel is the channel, private group, or IM channel to send message to. Channel string `json:"channel,omitempty"` // Text of the message to send. Text string `json:"text,omitempty"` // Markdown enables Markdown support. Markdown bool `json:"mrkdwn,omitempty"` // Parse changes how messages are treated. Parse string `json:"parse,omitempty"` // LinkNames causes link channel names and usernames to be found and linked. LinkNames int `json:"link_name,omitempty"` // Attachments is structured message attachments Attachments []*Attachment `json:"attachments,omitempty"` // UnfurLinks enables unfurling of primarily text-based content. UnfurlLinks bool `json:"unfurl_links,omitempty"` // UnfurlMedia if set to false disables unfurling of media content. UnfurlMedia bool `json:"unfurl_media,omitempty"` // Username set your bot's user name. // Must be used in conjunction with AsUser set to false, otherwise ignored. Username string `json:"username,omitempty"` // AsUser pass true to post the message as the authed user, instead of as a bot. AsUser bool `json:"as_user"` // IconURL is the URL to an image to use as the icon for this message. // Must be used in conjunction with AsUser set to false, otherwise ignored. IconURL string `json:"icon_url,omitempty"` // IconEmoji is the emoji to use as the icon for this message. // Overrides IconURL. // Must be used in conjunction with AsUser set to false, otherwise ignored. IconEmoji string `json:"icon_emoji,omitempty"` // ThreadTS is the timestamp (ts) of the parent message to reply to a thread. ThreadTS string `json:"thread_ts,omitempty"` // ReplyBroadcast used in conjunction with thread_ts and indicates whether reply // should be made visible to everyone in the channel or conversation. ReplyBroadcast bool `json:"reply_broadcast,omitempty"` }
Message represents slack chat message.
func (*Message) AddAttachment ¶
func (m *Message) AddAttachment(a *Attachment)
AddAttachment adds a to the message's attachments.
func (*Message) NewAttachment ¶
func (m *Message) NewAttachment() *Attachment
NewAttachment creates a new empty attachment adds it to the message and returns it.
func (*Message) Send ¶
func (m *Message) Send(c slack.Client) (*MessageResponse, error)
Send sends the msg to slack using the client c.
type MessageResponse ¶
type MessageResponse struct { slack.Response Timestamp string `json:"ts,omitempty"` Channel string `json:"channel,omitempty"` Message *Message `json:"message,omitempty"` }
MessageResponse the response returned from the post message call.
Click to show internal directories.
Click to hide internal directories.