Documentation ¶
Index ¶
- Constants
- type Action
- type ActionList
- type Attachment
- type AttachmentField
- type AttachmentFieldList
- type AttachmentList
- type AuthTestResponse
- type Bot
- type Channel
- type ChannelList
- type ChannelsHistoryResponse
- type ChatResponse
- type Comment
- type Confirmation
- type Conversation
- type Dialog
- type DialogElement
- type DialogElements
- type DialogResponse
- type DialogSubmission
- type Edited
- type EmojiListResponse
- type EphemeralResponse
- type EpochTime
- type ErrorResponse
- type File
- type GenericResponse
- type Group
- type GroupList
- type IM
- type Icon
- type Icons
- type InteractiveButtonRequest
- type Message
- type MessageList
- type OAuthAccessResponse
- type Option
- type OptionGroup
- type OptionGroupList
- type OptionList
- type Paging
- type PermalinkResponse
- type Presence
- type Purpose
- type RTMResponse
- type Reaction
- type ReactionList
- type ReactionsGetResponse
- type ReactionsGetResponseList
- type ReactionsListResponse
- type Reminder
- type ReminderList
- type StarredItem
- type StarredItemList
- type StarsListResponse
- type Team
- type ThreadInfo
- type Timestamp
- type Topic
- type User
- type UserDetails
- type UserList
- type UserPrefs
- type UserPresence
- type UserProfile
- type Usergroup
- type UsergroupList
- type UsergroupPrefs
- type UsergroupUsersList
Constants ¶
const (
ButtonActionType = "button"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct { Confirm *Confirmation `json:"confirm,omitempty"` DataSource string `json:"data_source,omitempty"` MinQueryLength int `json:"min_query_length,omitempty"` Name string `json:"name"` OptionGroups OptionGroupList `json:"option_groups,omitempty"` Options OptionList `json:"options,omitempty"` SelectedOptions OptionList `json:"selected_options,omitempty"` Style string `json:"style,omitempty"` Text string `json:"text"` Type string `json:"type"` Value string `json:"value"` }
Action is used in conjunction with message buttons
type ActionList ¶
type ActionList []*Action
func (*ActionList) Append ¶
func (l *ActionList) Append(a *Action) *ActionList
type Attachment ¶
type Attachment struct { Actions ActionList `json:"actions,omitempty"` // for buttons AttachmentType string `json:"attachment_type"` AuthorName string `json:"author_name"` AuthorLink string `json:"author_link"` AuthorIcon string `json:"author_icon"` CallbackID string `json:"callback_id,omitempty"` // for buttons Color string `json:"color,omitempty"` Fallback string `json:"fallback"` Fields AttachmentFieldList `json:"fields"` ImageURL string `json:"image_url"` ThumbURL string `json:"thumb_url"` Pretext string `json:"pretext,omitempty"` Text string `json:"text"` Timestamp Timestamp `json:"ts"` Title string `json:"title"` TitleLink string `json:"title_link"` }
type AttachmentField ¶
type AttachmentFieldList ¶
type AttachmentFieldList []*AttachmentField
func (*AttachmentFieldList) Append ¶
func (l *AttachmentFieldList) Append(a *AttachmentField) *AttachmentFieldList
type AttachmentList ¶
type AttachmentList []*Attachment
func (*AttachmentList) Append ¶
func (l *AttachmentList) Append(a *Attachment) *AttachmentList
func (*AttachmentList) Decode ¶
func (l *AttachmentList) Decode(buf string) error
func (*AttachmentList) Encode ¶
func (l *AttachmentList) Encode() (string, error)
type AuthTestResponse ¶
type AuthTestResponse struct { URL string `json:"url"` Team string `json:"team"` User string `json:"user"` TeamID string `json:"team_id"` UserID string `json:"user_id"` }
AuthTestResponse is the data structure response from auth.test
type ChannelList ¶
type ChannelList []*Channel
type ChannelsHistoryResponse ¶
type ChannelsHistoryResponse struct { HasMore bool `json:"has_more"` Latest string `json:"latest"` Messages MessageList `json:"messages"` }
type ChatResponse ¶
type Confirmation ¶
type Confirmation struct { Title string `json:"title"` Text string `json:"text"` OkText string `json:"ok_text"` DismissText string `json:"dismiss_text"` }
Confirmation is used in conjunction with message buttons
type Conversation ¶
type Conversation struct { ID string `json:"id"` Created EpochTime `json:"created"` IsOpen bool `json:"is_open"` LastRead string `json:"last_read,omitempty"` Latest *Message `json:"latest,omitempty"` UnreadCount int `json:"unread_count,omitempty"` UnreadCountDisplay int `json:"unread_count_display,omitempty"` }
Conversation is a structure that is never used by itself: it's re-used to describe a basic conversation profile by being embedded in other objects
type Dialog ¶
type Dialog struct { CallbackID string `json:"callback_id"` Title string `json:"title"` SubmitLabel string `json:"submit_label"` Elements DialogElements `json:"elements"` }
type DialogElement ¶
type DialogElement struct { Label string `json:"label"` Type string `json:"type"` Name string `json:"name"` Hint string `json:"hint,omitempty"` MaxLength int `json:"max_length,omitempty"` MinLength int `json:"min_length,omitempty"` Optional bool `json:"optional,omitempty"` Placeholder string `json:"placeholder,omitempty"` Subtype string `json:"subtype,omitempty"` Value string `json:"value,omitempty"` }
DialogElements represents elements in dialog, including text, textarea, and select
type DialogElements ¶
type DialogElements []*DialogElement
type DialogResponse ¶
type DialogResponse struct { ResponseMetadata struct { Messages []string `json:"messages"` } `json:"response_metadata"` }
type DialogSubmission ¶
type DialogSubmission struct { ActionTimestamp string `json:"action_ts"` Submission map[string]string `json:"submission"` Token string `json:"token"` TriggerID string `json:"trigger_id"` Team struct { Domain string `json:"domain"` ID string `json:"id"` } `json:"team"` Channel struct { ID string `json:"id"` Name string `json:"name"` } `json:"channel"` User struct { ID string `json:"id"` Name string `json:"name"` } `json:"user"` }
type EmojiListResponse ¶
type EphemeralResponse ¶
type EphemeralResponse struct {
MessageTimestamp string `json:"message_ts"`
}
type ErrorResponse ¶
ErrorResponse wraps errors returned by Slack. It's usually a string, but it could be a structure. https://api.slack.com/rtm#handling_responses
func (*ErrorResponse) String ¶
func (e *ErrorResponse) String() string
func (*ErrorResponse) UnmarshalJSON ¶
func (e *ErrorResponse) UnmarshalJSON(data []byte) error
type File ¶
type File struct { ID string Name string User string Created int `json:"created"` // The created property is a unix timestamp representing when the file was created. Timestamp int `json:"timestamp"` // Deprecated Updated int `json:"updated"` // The updated property (for Post filetypes only) is a unix timestamp of when the Post was last edited. MimeType string `json:"mimetype"` // The mimetype and filetype props do not have a 1-to-1 mapping, as multiple different files types ('html', 'js', etc.) share the same mime type. FileType string `json:"filetype"` PrettyType string `json:"pretty_type"` // The pretty_type property contains a human-readable version of the type. Mode string `json:"mode"` // The mode property contains one of hosted, external, snippet or post. Editable bool `json:"editable"` // The editable property indicates that files are stored in editable mode. IsExternal bool `json:"is_external"` // The is_external property indicates whether the master copy of a file is stored within the system or not. If the file is_external, then the url property will point to the externally-hosted master file. Further, the external_type property will indicate what kind of external file it is, e.g. dropbox or gdoc. ExternalType string `json:"external_type"` Size int `json:"size"` // The size parameter is the filesize in bytes. Snippets are limited to a maximum file size of 1 megabyte. URL string `json:"url"` // Deprecated - never set URLDownload string `json:"url_download"` // Deprecated - never set URLPrivate string `json:"url_private"` URLPrivateDownload string `json:"url_private_download"` ImageExifRotation string `json:"image_exif_rotation"` OriginalWidth int `json:"original_w"` OriginalHeight int `json:"original_h"` Thumb64 string `json:"thumb_64"` Thumb80 string `json:"thumb_80"` Thumb160 string `json:"thumb_160"` Thumb360 string `json:"thumb_360"` Thumb360Gif string `json:"thumb_360_gif"` Thumb360W int `json:"thumb_360_w"` Thumb360H int `json:"thumb_360_h"` Thumb480 string `json:"thumb_480"` Thumb480W int `json:"thumb_480_w"` Thumb480H int `json:"thumb_480_h"` Thumb720 string `json:"thumb_720"` Thumb720W int `json:"thumb_720_w"` Thumb720H int `json:"thumb_720_h"` Thumb960 string `json:"thumb_960"` Thumb960W int `json:"thumb_960_w"` Thumb960H int `json:"thumb_960_h"` Thumb1024 string `json:"thumb_1024"` Thumb1024W int `json:"thumb_1024_w"` Thumb1024H int `json:"thumb_1024_h"` Permalink string `json:"permalink"` PermalinkPublic string `json:"permalink_public"` EditLink string `json:"edit_link"` Preview string `json:"preview"` PreviewHighlight string `json:"preview_highlight"` Lines int `json:"lines"` LinesMore int `json:"lines_more"` IsPublic bool `json:"is_public"` Channels []string `json:"channels"` Groups []string `json:"groups"` IMs []string `json:"ims"` InitialComment Comment `json:"initial_comment"` CommentsCount int `json:"comments_count"` NumStars int `json:"num_stars"` IsStarred bool `json:"is_starred"` Title string `json:"title"` Reactions ReactionList `json:"reactions,omitempty"` }
File represents a file object (https://api.slack.com/types/file)
type GenericResponse ¶
type GenericResponse struct { OK bool `json:"ok"` ReplyTo int `json:"reply_to,omitempty"` Error ErrorResponse `json:"error,omitempty"` Timestamp string `json:"ts"` }
GenericResponse is the generic response part given by all slack API response.
type Group ¶
type Group struct { Conversation Creator string `json:"creator"` IsArchived bool `json:"is_archived"` IsGroup bool `json:"is_group"` IsMPIM bool `json:"is_mpim"` Members []string `json:"members"` Name string `json:"name"` NameNormalized string `json:"name_normalized"` NumMembers int `json:"num_members,omitempty"` PreviousNames []string `json:"previous_names,omitempty"` Purpose Purpose `json:"purpose"` Topic Topic `json:"topic"` }
Group contains information about a private channel. Private channels were once known as "private groups."
type IM ¶
type IM struct { Conversation IsIM bool `json:"is_im"` User string `json:"user"` IsUserDeleted bool `json:"is_user_deleted"` }
type InteractiveButtonRequest ¶
type InteractiveButtonRequest struct { ActionTimestamp string `json:"action_ts"` Actions ActionList `json:"actions"` AttachmentID int `json:"attachment_id,string"` CallbackID string `json:"callback_id"` Channel struct { ID string `json:"id"` Name string `json:"name"` } `json:"channel"` IsAppUnfurl bool `json:"is_app_unfurl"` MessageTimestamp string `json:"message_ts"` OriginalMessage *Message `json:"original_message"` Options OptionList `json:"options"` OptionGroups OptionGroupList `json:"option_groups"` ResponseURL string `json:"response_url"` Team struct { Domain string `json:"domain"` ID string `json:"id"` } `json:"team"` Token string `json:"token"` TriggerID string `json:"trigger_id"` User struct { ID string `json:"id"` Name string `json:"name"` } `json:"user"` }
InteractiveButtonRequest is a request that is sent when a user hits a Slack button. Note: this is experimental
type Message ¶
type Message struct { Attachments AttachmentList `json:"attachments"` Channel string `json:"channel"` Edited *Edited `json:"edited"` IsStarred bool `json:"is_starred"` PinnedTo []string `json:"pinned_to"` Text string `json:"text"` Timestamp string `json:"ts"` Type string `json:"type"` User string `json:"user"` // Message Subtypes Subtype string `json:"subtype"` // Hidden Subtypes Hidden bool `json:"hidden,omitempty"` // message_changed, message_deleted, unpinned_item DeletedTimestamp string `json:"deleted_ts,omitempty"` // message_deleted EventTimestamp string `json:"event_ts,omitempty"` // bot_message (https://api.slack.com/events/message/bot_message) BotID string `json:"bot_id,omitempty"` Username string `json:"username,omitempty"` Icons *Icon `json:"icons,omitempty"` // channel_join, group_join Inviter string `json:"inviter,omitempty"` // channel_topic, group_topic Topic string `json:"topic,omitempty"` // channel_purpose, group_purpose Purpose string `json:"purpose,omitempty"` // channel_name, group_name Name string `json:"name,omitempty"` OldName string `json:"old_name,omitempty"` // channel_archive, group_archive Members []string `json:"members,omitempty"` // file_share Upload bool `json:"upload,omitempty"` // file_comment Comment *Comment `json:"comment,omitempty"` // pinned_item ItemType string `json:"item_type,omitempty"` // https://api.slack.com/rtm ReplyTo int `json:"reply_to,omitempty"` Team string `json:"team,omitempty"` // reactions Reactions ReactionList `json:"reactions,omitempty"` }
Message is a representation of a message, as obtained by the RTM or Events API. This is NOT what you use when you are posting a message. See ChatService#PostMessage and MessageParams for that.
type MessageList ¶
type MessageList []*Message
type OAuthAccessResponse ¶
type OptionGroup ¶
type OptionGroup struct { Text string `json:"text"` Options OptionList `json:"options"` }
type OptionGroupList ¶
type OptionGroupList []*OptionGroup
type OptionList ¶
type OptionList []*Option
type PermalinkResponse ¶
type RTMResponse ¶
type ReactionList ¶
type ReactionList []*Reaction
type ReactionsGetResponse ¶
type ReactionsGetResponse struct { Channel string `json:"channel"` Comment string `json:"comment"` File *File `json:"file"` Message *Message `json:"message"` Type string `json:"type"` }
ReactionsGetResponse represents the response obtained from reactions.get API (https://api.slack.com/methods/reactions.get)
type ReactionsGetResponseList ¶
type ReactionsGetResponseList []ReactionsGetResponse
type ReactionsListResponse ¶
type ReactionsListResponse struct { Items ReactionsGetResponseList `json:"items"` Paging Paging `json:"paging"` }
type ReminderList ¶
type ReminderList []*Reminder
type StarredItem ¶
type StarredItem interface{}
type StarredItemList ¶
type StarredItemList []StarredItem
type StarsListResponse ¶
type StarsListResponse struct { Items StarredItemList `json:"items"` Paging Paging `json:"paging"` }
type Team ¶
type Team struct { ID string `json:"id"` Name string `json:"name"` Domain string `json:"domain"` EmailDomain string `json:"email_domain"` EnterpriseID string `json:"enterprise_id,omitempty"` EnterpriseName string `json:"enterprise_name,omitempty"` Icon map[string]interface{} `json:"icon"` MsgEditWindowMins int `json:"msg_edit_window_mins"` OverStorageLimit bool `json:"over_storage_limit"` Prefs interface{} `json:"prefs"` Plan string `json:"plan"` }
type ThreadInfo ¶
type User ¶
type User struct { Color string `json:"color"` Deleted bool `json:"deleted"` ID string `json:"id"` IsAdmin bool `json:"is_admin"` IsBot bool `json:"is_bot"` IsOwner bool `json:"is_owner"` IsPrimaryOwner bool `json:"is_primary_owner"` IsRestricted bool `json:"is_restricted"` IsUltraRestricted bool `json:"is_ultra_restricted"` Name string `json:"name"` Profile UserProfile `json:"profile"` RealName string `json:"real_name"` Status string `json:"status,omitempty"` TeamID string `json:"team_id"` TZ string `json:"tz,omitempty"` TZLabel string `json:"tz_label"` TZOffset int `json:"tz_offset"` Updated int `json:"updated"` }
type UserDetails ¶
type UserDetails struct { ID string `json:"id"` Name string `json:"name"` Created EpochTime `json:"created"` ManualPresence string `json:"manual_presence"` Prefs UserPrefs `json:"prefs"` }
UserDetails is only provided by rtm.start response
type UserPresence ¶
type UserProfile ¶
type UserProfile struct { AlwaysActive bool `json:"always_active,omitempty"` AvatarHash string `json:"avatar_hash,omitempty"` Email string `json:"email,omitempty"` FirstName string `json:"first_name,omitempty"` Image24 string `json:"image_24,omitempty"` Image32 string `json:"image_32,omitempty"` Image48 string `json:"image_48,omitempty"` Image72 string `json:"image_72,omitempty"` Image192 string `json:"image_192,omitempty"` Image512 string `json:"image_512,omitempty"` LastName string `json:"last_name,omitempty"` RealName string `json:"real_name,omitempty"` RealNameNormalized string `json:"real_name_normalized,omitempty"` StatusText string `json:"status_text,omitempty"` StatusEmoji string `json:"status_emoji,omitempty"` }
func (*UserProfile) Decode ¶
func (p *UserProfile) Decode(buf string) error
func (*UserProfile) Encode ¶
func (p *UserProfile) Encode() (string, error)
type Usergroup ¶
type Usergroup struct { AutoProvision bool `json:"auto_provision"` AutoType string `json:"auto_type"` CreatedBy string `json:"created_by"` DateCreate EpochTime `json:"date_create"` DateDelete EpochTime `json:"date_delete"` DateUpdate EpochTime `json:"date_update"` DeletedBy string `json:"deleted_by"` Description string `json:"description"` EnterpriseSubteamID string `json:"enterprise_subteam_id"` Handle string `json:"handle"` ID string `json:"id"` IsExternal bool `json:"is_external"` IsSubteam bool `json:"is_subteam"` IsUsergroup bool `json:"is_usergroup"` Name string `json:"name"` Prefs *UsergroupPrefs `json:"prefs"` TeamID string `json:"team_id"` UpdatedBy string `json:"updated_by"` Users []string `json:"users"` UserCount int `json:"user_count"` }
Usergroup represents a single UserGroup (like @accounting or @marketing). This should not be confused with private channels or multi-person messages. This is an alias that points to a collection of users and/or channels for notification purposes.
type UsergroupPrefs ¶
UsergroupPrefs is the list of preferences for channels and groups for a given Usergroup.
type UsergroupUsersList ¶
type UsergroupUsersList []string
UsergroupUsersList is the list of users in a given Usergroup.