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.