Documentation ¶
Index ¶
- Constants
- Variables
- func GetOAuthToken(clientId, clientSecret, code, redirectURI string, debug bool) (accessToken string, scope string, err error)
- type AccountsChangedEvent
- type AckMessage
- type Attachment
- type AttachmentField
- type AuthTestResponse
- type BaseChannel
- type Bot
- type BotAddedEvent
- type BotChangedEvent
- type Channel
- type ChannelArchiveEvent
- type ChannelCreatedEvent
- type ChannelCreatedInfo
- type ChannelDeletedEvent
- type ChannelHistoryChangedEvent
- type ChannelInfoEvent
- type ChannelJoinedEvent
- type ChannelLeftEvent
- type ChannelMarkedEvent
- type ChannelPurpose
- type ChannelRenameEvent
- type ChannelRenameInfo
- type ChannelTopic
- type ChannelUnarchiveEvent
- type CommandsChangedEvent
- type Comment
- type Config
- type CtxChannel
- type CtxMessage
- type EmailDomainChangedEvent
- type EmojiChangedEvent
- type Event
- type File
- type FileChangeEvent
- type FileCommentAddedEvent
- type FileCommentDeletedEvent
- type FileCommentEditedEvent
- type FileCreatedEvent
- type FileDeletedEvent
- type FilePrivateEvent
- type FilePublicEvent
- type FileSharedEvent
- type FileUnsharedEvent
- type FileUploadParameters
- type GetFilesParameters
- type GetReactionsParameters
- type Group
- type GroupArchiveEvent
- type GroupCloseEvent
- type GroupCreatedEvent
- type GroupHistoryChangedEvent
- type GroupJoinedEvent
- type GroupLeftEvent
- type GroupMarkedEvent
- type GroupOpenEvent
- type GroupRenameEvent
- type GroupUnarchiveEvent
- type HelloEvent
- type History
- type HistoryParameters
- type IM
- type IMCloseEvent
- type IMCreatedEvent
- type IMHistoryChangedEvent
- type IMMarkedEvent
- type IMMarkedHistoryChanged
- type IMOpenEvent
- type Icons
- type Info
- type Item
- type ItemReaction
- type ItemRef
- type JSONTime
- type JSONTimeString
- type LatencyReport
- type ListReactionsParameters
- type ManualPresenceChangeEvent
- type Message
- type MessageEvent
- type Msg
- type OutgoingMessage
- type Pagination
- type Paging
- type Ping
- type Pong
- type PostMessageParameters
- type PrefChangeEvent
- type Presence
- type PresenceChangeEvent
- type ReactedItem
- type ReactionAddedEvent
- type ReactionRemovedEvent
- type SearchFiles
- type SearchMessage
- type SearchMessages
- type SearchParameters
- type Slack
- func (api *Slack) AddReaction(name string, item ItemRef) error
- func (api *Slack) ArchiveChannel(channelId string) error
- func (api *Slack) ArchiveGroup(groupId string) error
- func (api *Slack) AuthTest() (response *AuthTestResponse, error error)
- func (api *Slack) CloseGroup(groupId string) (bool, bool, error)
- func (api *Slack) CloseIMChannel(channelId string) (bool, bool, error)
- func (api *Slack) CreateChannel(channel string) (*Channel, error)
- func (api *Slack) CreateChildGroup(groupId string) (*Group, error)
- func (api *Slack) CreateGroup(group string) (*Group, error)
- func (api *Slack) DeleteFile(fileId string) error
- func (api *Slack) DeleteMessage(channelId, messageTimestamp string) (string, string, error)
- func (api *Slack) GetChannelHistory(channelId string, params HistoryParameters) (*History, error)
- func (api *Slack) GetChannelInfo(channelId string) (*Channel, error)
- func (api *Slack) GetChannels(excludeArchived bool) ([]Channel, error)
- func (api *Slack) GetEmoji() (map[string]string, error)
- func (api *Slack) GetFileInfo(fileId string, count, page int) (*File, []Comment, *Paging, error)
- func (api *Slack) GetFiles(params GetFilesParameters) ([]File, *Paging, error)
- func (api *Slack) GetGroupHistory(groupId string, params HistoryParameters) (*History, error)
- func (api *Slack) GetGroupInfo(groupId string) (*Group, error)
- func (api *Slack) GetGroups(excludeArchived bool) ([]Group, error)
- func (api *Slack) GetIMChannels() ([]IM, error)
- func (api *Slack) GetIMHistory(channelId string, params HistoryParameters) (*History, error)
- func (api *Slack) GetInfo() Info
- func (api *Slack) GetReactions(item ItemRef, params GetReactionsParameters) ([]ItemReaction, error)
- func (api *Slack) GetStarred(params StarsParameters) ([]StarredItem, *Paging, error)
- func (api *Slack) GetUserInfo(userId string) (*User, error)
- func (api *Slack) GetUserPresence(userId string) (*UserPresence, error)
- func (api *Slack) GetUsers() ([]User, error)
- func (api *Slack) InviteGuest(teamName string, channelID string, firstName string, lastName string, ...) error
- func (api *Slack) InviteRestricted(teamName string, channelID string, firstName string, lastName string, ...) error
- func (api *Slack) InviteUserToChannel(channelId, userId string) (*Channel, error)
- func (api *Slack) InviteUserToGroup(groupId, userId string) (*Group, bool, error)
- func (api *Slack) JoinChannel(channel string) (*Channel, error)
- func (api *Slack) KickUserFromChannel(channelId, userId string) error
- func (api *Slack) KickUserFromGroup(groupId, userId string) error
- func (api *Slack) LeaveChannel(channelId string) (bool, error)
- func (api *Slack) LeaveGroup(groupId string) error
- func (api *Slack) ListReactions(params ListReactionsParameters) ([]ReactedItem, *Paging, error)
- func (api *Slack) MarkIMChannel(channelId, ts string) (err error)
- func (api *Slack) OpenGroup(groupId string) (bool, bool, error)
- func (api *Slack) OpenIMChannel(userId string) (bool, bool, string, error)
- func (api *Slack) PostMessage(channelId string, text string, params PostMessageParameters) (channel string, timestamp string, err error)
- func (api *Slack) RemoveReaction(name string, item ItemRef) error
- func (api *Slack) RenameChannel(channelId, name string) (*Channel, error)
- func (api *Slack) RenameGroup(groupId, name string) (*Channel, error)
- func (api *Slack) Search(query string, params SearchParameters) (*SearchMessages, *SearchFiles, error)
- func (api *Slack) SearchFiles(query string, params SearchParameters) (*SearchFiles, error)
- func (api *Slack) SearchMessages(query string, params SearchParameters) (*SearchMessages, error)
- func (api *Slack) SetChannelPurpose(channelId, purpose string) (string, error)
- func (api *Slack) SetChannelReadMark(channelId, ts string) error
- func (api *Slack) SetChannelTopic(channelId, topic string) (string, error)
- func (api *Slack) SetDebug(debug bool)
- func (api *Slack) SetGroupPurpose(groupId, purpose string) (string, error)
- func (api *Slack) SetGroupReadMark(groupId, ts string) error
- func (api *Slack) SetGroupTopic(groupId, topic string) (string, error)
- func (api *Slack) SetUserAsActive() error
- func (api *Slack) SetUserPresence(presence string) error
- func (api *Slack) StartRTM(protocol, origin string) (*SlackWS, error)
- func (api *Slack) UnarchiveChannel(channelId string) error
- func (api *Slack) UnarchiveGroup(groupId string) error
- func (api *Slack) UpdateMessage(channelId, timestamp, text string) (string, string, string, error)
- func (api *Slack) UploadFile(params FileUploadParameters) (file *File, err error)
- type SlackEvent
- type SlackResponse
- type SlackWS
- type SlackWSError
- type SlackWSResponse
- type StarAddedEvent
- type StarRemovedEvent
- type StarredItem
- type StarsParameters
- type Team
- type TeamDomainChangeEvent
- type TeamJoinEvent
- type TeamMigrationStartedEvent
- type TeamPrefChangeEvent
- type TeamRenameEvent
- type User
- type UserChangeEvent
- type UserDetails
- type UserPrefs
- type UserPresence
- type UserProfile
- type UserTypingEvent
Constants ¶
const ( DEFAULT_MESSAGE_USERNAME = "" DEFAULT_MESSAGE_ASUSER = false DEFAULT_MESSAGE_PARSE = "" DEFAULT_MESSAGE_LINK_NAMES = 0 DEFAULT_MESSAGE_UNFURL_LINKS = false DEFAULT_MESSAGE_UNFURL_MEDIA = true DEFAULT_MESSAGE_ICON_URL = "" DEFAULT_MESSAGE_ICON_EMOJI = "" DEFAULT_MESSAGE_MARKDOWN = true DEFAULT_MESSAGE_ESCAPE_TEXT = true )
const ( // Add here the defaults in the siten DEFAULT_FILES_USERID = "" DEFAULT_FILES_TS_FROM = 0 DEFAULT_FILES_TS_TO = -1 DEFAULT_FILES_TYPES = "all" DEFAULT_FILES_COUNT = 100 DEFAULT_FILES_PAGE = 1 )
const ( DEFAULT_HISTORY_LATEST = "" DEFAULT_HISTORY_OLDEST = "0" DEFAULT_HISTORY_COUNT = 100 DEFAULT_HISTORY_INCLUSIVE = false )
const ( TYPE_MESSAGE = "message" TYPE_FILE = "file" TYPE_FILE_COMMENT = "file_comment" TYPE_CHANNEL = "channel" TYPE_IM = "im" TYPE_GROUP = "group" )
const ( DEFAULT_REACTIONS_USERID = "" DEFAULT_REACTIONS_COUNT = 100 DEFAULT_REACTIONS_PAGE = 1 DEFAULT_REACTIONS_FULL = false )
const ( DEFAULT_SEARCH_SORT = "score" DEFAULT_SEARCH_SORT_DIR = "desc" DEFAULT_SEARCH_HIGHLIGHT = false DEFAULT_SEARCH_COUNT = 100 DEFAULT_SEARCH_PAGE = 1 )
const ( DEFAULT_STARS_USERID = "" DEFAULT_STARS_COUNT = 100 DEFAULT_STARS_PAGE = 1 )
Variables ¶
var SLACK_API string = "https://slack.com/api/"
Added as a var so that we can change this for testing purposes
var SLACK_WEB_API_FORMAT string = "https://%s.slack.com/api/users.admin.%s?t=%s"
Functions ¶
Types ¶
type AccountsChangedEvent ¶
type AccountsChangedEvent struct {
Type string `json:"type"`
}
type AckMessage ¶
type AckMessage struct { ReplyTo int `json:"reply_to"` Timestamp string `json:"ts"` Text string `json:"text"` SlackWSResponse }
AckMessage is used for messages received in reply to other messages
type Attachment ¶
type Attachment struct { Fallback string `json:"fallback"` Color string `json:"color,omitempty"` Pretext string `json:"pretext,omitempty"` AuthorName string `json:"author_name,omitempty"` AuthorLink string `json:"author_link,omitempty"` AuthorIcon string `json:"author_icon,omitempty"` Title string `json:"title,omitempty"` TitleLink string `json:"title_link,omitempty"` Text string `json:"text"` ImageURL string `json:"image_url,omitempty"` ThumbURL string `json:"thumb_url,omitempty"` Fields []AttachmentField `json:"fields,omitempty"` MarkdownIn []string `json:"mrkdwn_in,omitempty"` }
Attachment contains all the information for an attachment
type AttachmentField ¶
type AttachmentField struct { Title string `json:"title"` Value string `json:"value"` Short bool `json:"short"` }
AttachmentField contains information for an attachment field An Attachment can contain multiple of these
type AuthTestResponse ¶
type BaseChannel ¶
type BaseChannel struct { Id string `json:"id"` Created JSONTime `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"` }
type Bot ¶
type Bot struct { Id string `json:"id"` Name string `json:"name"` Deleted bool `json:"deleted"` Icons Icons `json:"icons"` }
Bot contains information about a bot
type BotAddedEvent ¶
type BotChangedEvent ¶
type Channel ¶
type Channel struct { BaseChannel Name string `json:"name"` IsChannel bool `json:"is_channel"` Creator string `json:"creator"` IsArchived bool `json:"is_archived"` IsGeneral bool `json:"is_general"` Members []string `json:"members"` Topic ChannelTopic `json:"topic"` Purpose ChannelPurpose `json:"purpose"` IsMember bool `json:"is_member"` LastRead string `json:"last_read,omitempty"` Latest *Message `json:"latest,omitempty"` UnreadCount int `json:"unread_count,omitempty"` NumMembers int `json:"num_members,omitempty"` }
Channel contains information about the channel
type ChannelArchiveEvent ¶
type ChannelArchiveEvent ChannelInfoEvent
type ChannelCreatedEvent ¶
type ChannelCreatedEvent struct { Type string `json:"type"` Channel ChannelCreatedInfo `json:"channel"` EventTimestamp JSONTimeString `json:"event_ts"` }
type ChannelCreatedInfo ¶
type ChannelDeletedEvent ¶
type ChannelDeletedEvent ChannelInfoEvent
type ChannelHistoryChangedEvent ¶
type ChannelHistoryChangedEvent struct { Type string `json:"type"` Latest JSONTimeString `json:"latest"` Timestamp JSONTimeString `json:"ts"` EventTimestamp JSONTimeString `json:"event_ts"` }
type ChannelInfoEvent ¶
type ChannelInfoEvent struct { // channel_left // channel_deleted // channel_archive // channel_unarchive Type string `json:"type"` ChannelId string `json:"channel"` UserId string `json:"user,omitempty"` Timestamp *JSONTimeString `json:"ts,omitempty"` }
type ChannelJoinedEvent ¶
type ChannelLeftEvent ¶
type ChannelLeftEvent ChannelInfoEvent
type ChannelMarkedEvent ¶
type ChannelMarkedEvent ChannelInfoEvent
type ChannelPurpose ¶
type ChannelPurpose struct { Value string `json:"value"` Creator string `json:"creator"` LastSet JSONTime `json:"last_set"` }
ChannelPurpose contains information about the channel purpose
type ChannelRenameEvent ¶
type ChannelRenameEvent struct { Type string `json:"type"` Channel ChannelRenameInfo `json:"channel"` }
type ChannelRenameInfo ¶
type ChannelRenameInfo struct { Id string `json:"id"` Name string `json:"name"` Created JSONTimeString `json:"created"` }
type ChannelTopic ¶
type ChannelTopic struct { Value string `json:"value"` Creator string `json:"creator"` LastSet JSONTime `json:"last_set"` }
ChannelTopic contains information about the channel topic
type ChannelUnarchiveEvent ¶
type ChannelUnarchiveEvent ChannelInfoEvent
type CommandsChangedEvent ¶
type CommandsChangedEvent struct { Type string `json:"type"` EventTimestamp JSONTimeString `json:"event_ts"` }
type Comment ¶
type Comment struct { Id string `json:"id"` Timestamp JSONTime `json:"timestamp"` UserId string `json:"user"` Comment string `json:"comment"` Created JSONTime `json:"created,omitempty"` }
Comment contains all the information relative to a comment
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config contains some config parameters needed Token always needs to be set for the api to function Origin and Protocol are optional and only needed for websocket
type CtxChannel ¶
type CtxMessage ¶
type EmailDomainChangedEvent ¶
type EmailDomainChangedEvent struct { Type string `json:"type"` EventTimestamp JSONTimeString `json:"event_ts"` EmailDomain string `json:"email_domain"` }
type EmojiChangedEvent ¶
type EmojiChangedEvent struct { Type string `json:"type"` EventTimestamp JSONTimeString `json:"event_ts"` }
type Event ¶
type Event struct {
Type string `json:"type,omitempty"`
}
Event contains the event type
type File ¶
type File struct { Id string `json:"id"` Created JSONTime `json:"created"` Timestamp JSONTime `json:"timestamp"` Name string `json:"name"` Title string `json:"title"` Mimetype string `json:"mimetype"` Filetype string `json:"filetype"` PrettyType string `json:"pretty_type"` UserId string `json:"user"` Mode string `json:"mode"` Editable bool `json:"editable"` IsExternal bool `json:"is_external"` ExternalType string `json:"external_type"` Size int `json:"size"` URL string `json:"url"` URLDownload string `json:"url_download"` URLPrivate string `json:"url_private"` URLPrivateDownload string `json:"url_private_download"` Thumb64 string `json:"thumb_64"` Thumb80 string `json:"thumb_80"` Thumb360 string `json:"thumb_360"` Thumb360Gif string `json:"thumb_360_gif"` Thumb360W int `json:"thumb_360_w"` Thumb360H int `json:"thumb_360_h"` Permalink string `json:"permalink"` 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"` InitialComment Comment `json:"initial_comment"` NumStars int `json:"num_stars"` IsStarred bool `json:"is_starred"` }
File contains all the information for a file
type FileChangeEvent ¶
type FileChangeEvent fileActionEvent
type FileCommentAddedEvent ¶
type FileCommentAddedEvent struct { Comment Comment `json:"comment"` // contains filtered or unexported fields }
type FileCommentDeletedEvent ¶
type FileCommentDeletedEvent struct { CommentId string `json:"comment"` // contains filtered or unexported fields }
type FileCommentEditedEvent ¶
type FileCommentEditedEvent struct { Comment Comment `json:"comment"` // contains filtered or unexported fields }
type FileCreatedEvent ¶
type FileCreatedEvent fileActionEvent
type FileDeletedEvent ¶
type FileDeletedEvent fileActionEvent
type FilePrivateEvent ¶
type FilePrivateEvent fileActionEvent
type FilePublicEvent ¶
type FilePublicEvent fileActionEvent
type FileSharedEvent ¶
type FileSharedEvent fileActionEvent
type FileUnsharedEvent ¶
type FileUnsharedEvent fileActionEvent
type FileUploadParameters ¶
type FileUploadParameters struct { File string Content string Filetype string Filename string Title string InitialComment string Channels []string }
FileUploadParameters contains all the parameters necessary (including the optional ones) for an UploadFile() request
type GetFilesParameters ¶
type GetFilesParameters struct { UserId string TimestampFrom JSONTime TimestampTo JSONTime Types string Count int Page int }
GetFilesParameters contains all the parameters necessary (including the optional ones) for a GetFiles() request
func NewGetFilesParameters ¶
func NewGetFilesParameters() GetFilesParameters
NewGetFilesParameters provides an instance of GetFilesParameters with all the sane default values set
type GetReactionsParameters ¶
type GetReactionsParameters struct {
Full bool
}
GetReactionsParameters is the inputs to get reactions to an item.
func NewGetReactionsParameters ¶
func NewGetReactionsParameters() GetReactionsParameters
NewGetReactionsParameters initializes the inputs to get reactions to an item.
type Group ¶
type Group struct { BaseChannel Name string `json:"name"` IsGroup bool `json:"is_group"` Creator string `json:"creator"` IsArchived bool `json:"is_archived"` IsOpen bool `json:"is_open,omitempty"` Members []string `json:"members"` Topic ChannelTopic `json:"topic"` Purpose ChannelPurpose `json:"purpose"` LastRead string `json:"last_read,omitempty"` Latest *Message `json:"latest,omitempty"` UnreadCount int `json:"unread_count,omitempty"` NumMembers int `json:"num_members,omitempty"` UnreadCountDisplay int `json:"unread_count_display,omitempty"` }
Group contains all the information for a group
type GroupArchiveEvent ¶
type GroupArchiveEvent ChannelInfoEvent
type GroupCloseEvent ¶
type GroupCloseEvent ChannelInfoEvent
type GroupCreatedEvent ¶
type GroupCreatedEvent struct { Type string `json:"type"` UserId string `json:"user"` Channel ChannelCreatedInfo `json:"channel"` }
type GroupHistoryChangedEvent ¶
type GroupHistoryChangedEvent ChannelHistoryChangedEvent
type GroupJoinedEvent ¶
type GroupJoinedEvent ChannelJoinedEvent
type GroupLeftEvent ¶
type GroupLeftEvent ChannelInfoEvent
type GroupMarkedEvent ¶
type GroupMarkedEvent ChannelInfoEvent
XXX: Should we really do this? event.Group is probably nicer than event.Channel even though the api returns "channel"
type GroupOpenEvent ¶
type GroupOpenEvent ChannelInfoEvent
type GroupRenameEvent ¶
type GroupRenameEvent ChannelRenameEvent
type GroupUnarchiveEvent ¶
type GroupUnarchiveEvent ChannelInfoEvent
type HelloEvent ¶
type HelloEvent struct{}
type History ¶
type History struct { Latest string `json:"latest"` Messages []Message `json:"messages"` HasMore bool `json:"has_more"` }
History contains message history information needed to navigate a Channel / Group / DM history
type HistoryParameters ¶
HistoryParameters contains all the necessary information to help in the retrieval of history for Channels/Groups/DMs
func NewHistoryParameters ¶
func NewHistoryParameters() HistoryParameters
NewHistoryParameters provides an instance of HistoryParameters with all the sane default values set
type IM ¶
type IM struct { BaseChannel IsIM bool `json:"is_im"` UserId string `json:"user"` IsUserDeleted bool `json:"is_user_deleted"` }
IM contains information related to the Direct Message channel
type IMCloseEvent ¶
type IMCloseEvent ChannelInfoEvent
type IMCreatedEvent ¶
type IMCreatedEvent struct { Type string `json:"type"` UserId string `json:"user"` Channel ChannelCreatedInfo `json:"channel"` }
type IMHistoryChangedEvent ¶
type IMHistoryChangedEvent ChannelHistoryChangedEvent
type IMMarkedEvent ¶
type IMMarkedEvent ChannelInfoEvent
type IMMarkedHistoryChanged ¶
type IMMarkedHistoryChanged ChannelInfoEvent
type IMOpenEvent ¶
type IMOpenEvent ChannelInfoEvent
type Icons ¶
type Icons struct {
Image48 string `json:"image_48"`
}
Icons XXX: needs further investigation
type Info ¶
type Info struct { Url string `json:"url,omitempty"` User *UserDetails `json:"self,omitempty"` Team *Team `json:"team,omitempty"` Users []User `json:"users,omitempty"` Channels []Channel `json:"channels,omitempty"` Groups []Group `json:"groups,omitempty"` Bots []Bot `json:"bots,omitempty"` IMs []IM `json:"ims,omitempty"` }
Info contains various details about Users, Channels, Bots and the authenticated user It is returned by StartRTM
func (Info) GetBotById ¶
GetBotById returns a bot given a bot id
func (Info) GetChannelById ¶
GetChannelById returns a channel given a channel id
func (Info) GetGroupById ¶
GetGroupById returns a group given a group id
func (Info) GetUserById ¶
GetUserById returns a user given a user id
type Item ¶
type Item struct { Type string `json:"type"` Channel string `json:"channel,omitempty"` Message *Message `json:"message,omitempty"` File *File `json:"file,omitempty"` Comment *Comment `json:"comment,omitempty"` Timestamp string `json:"ts,omitempty"` }
Item is any type of slack message - message, file, or file comment.
func NewChannelItem ¶
NewChannelItem turns a channel id into a typed channel struct.
func NewFileCommentItem ¶
NewFileCommentItem turns a file and comment into a typed file_comment struct.
func NewFileItem ¶
NewFileItem turns a file into a typed file struct.
func NewGroupItem ¶
NewGroupItem turns a channel id into a typed group struct.
func NewMessageItem ¶
NewMessageItem turns a message on a channel into a typed message struct.
type ItemReaction ¶
type ItemReaction struct { Name string `json:"name"` Count int `json:"count"` Users []string `json:"users"` }
ItemReaction is the reactions that have happened on an item.
type ItemRef ¶
type ItemRef struct { ChannelId string `json:"channel"` Timestamp string `json:"timestamp"` FileId string `json:"file"` CommentId string `json:"file_comment"` }
ItemRef is a reference to a message of any type. One of FileID, CommentId, or the combination of ChannelId and Timestamp must be specified.
func NewRefToComment ¶
NewRefToComment initializes a reference to a file comment.
func NewRefToFile ¶
NewRefToFile initializes a reference to a file.
func NewRefToMessage ¶
NewRefToMessage initializes a reference to to a message.
type JSONTime ¶
type JSONTime int64
JSONTime exists so that we can have a String method converting the date
type JSONTimeString ¶
type JSONTimeString string
func (JSONTimeString) String ¶
func (t JSONTimeString) String() string
String converts the unix timestamp into a string
type LatencyReport ¶
type ListReactionsParameters ¶
ListReactionsParameters is the inputs to find all reactions by a user.
func NewListReactionsParameters ¶
func NewListReactionsParameters() ListReactionsParameters
NewListReactionsParameters initializes the inputs to find all reactions performed by a user.
type MessageEvent ¶
type MessageEvent Message
type Msg ¶
type Msg struct { Id string `json:"id"` BotId string `json:"bot_id,omitempty"` UserId string `json:"user,omitempty"` Username string `json:"username,omitempty"` ChannelId string `json:"channel,omitempty"` Timestamp string `json:"ts,omitempty"` Text string `json:"text,omitempty"` Team string `json:"team,omitempty"` File *File `json:"file,omitempty"` // Type may come if it's part of a message list // e.g.: channel.history Type string `json:"type,omitempty"` IsStarred bool `json:"is_starred,omitempty"` // Submessage SubType string `json:"subtype,omitempty"` Hidden bool `json:"bool,omitempty"` DeletedTimestamp string `json:"deleted_ts,omitempty"` Attachments []Attachment `json:"attachments,omitempty"` ReplyTo int `json:"reply_to,omitempty"` Upload bool `json:"upload,omitempty"` }
Msg contains information about a slack message
type OutgoingMessage ¶
type Pagination ¶
type Pagination struct { TotalCount int `json:"total_count"` Page int `json:"page"` PerPage int `json:"per_page"` PageCount int `json:"page_count"` First int `json:"first"` Last int `json:"last"` }
Pagination contains pagination information This is different from Paging in that it contains additional details
type Paging ¶
type Paging struct { Count int `json:"count"` Total int `json:"total"` Page int `json:"page"` Pages int `json:"pages"` }
Paging contains paging information
type PostMessageParameters ¶
type PostMessageParameters struct { Text string Username string AsUser bool Parse string LinkNames int Attachments []Attachment UnfurlLinks bool UnfurlMedia bool IconURL string IconEmoji string Markdown bool `json:"mrkdwn,omitempty"` EscapeText bool }
PostMessageParameters contains all the parameters necessary (including the optional ones) for a PostMessage() request
func NewPostMessageParameters ¶
func NewPostMessageParameters() PostMessageParameters
NewPostMessageParameters provides an instance of PostMessageParameters with all the sane default values set
type PrefChangeEvent ¶
type PrefChangeEvent struct { Type string `json:"type"` Name string `json:"name"` Value json.RawMessage `json:"value"` }
type PresenceChangeEvent ¶
type ReactedItem ¶
type ReactedItem struct { Item Reactions []ItemReaction }
ReactedItem is an item that was reacted to, and the details of the reactions.
type ReactionAddedEvent ¶
type ReactionAddedEvent reactionEvent
type ReactionRemovedEvent ¶
type ReactionRemovedEvent reactionEvent
type SearchFiles ¶
type SearchFiles struct { Matches []File `json:"matches"` Paging `json:"paging"` Pagination `json:"pagination"` Total int `json:"total"` }
type SearchMessage ¶
type SearchMessage struct { Type string `json:"type"` Channel CtxChannel `json:"channel"` UserId string `json:"user"` Username string `json:"username"` Timestamp string `json:"ts"` Text string `json:"text"` Permalink string `json:"permalink"` Previous CtxMessage `json:"previous"` Previous2 CtxMessage `json:"previous_2"` Next CtxMessage `json:"next"` Next2 CtxMessage `json:"next_2"` }
type SearchMessages ¶
type SearchMessages struct { Matches []SearchMessage `json:"matches"` Paging `json:"paging"` Pagination `json:"pagination"` Total int `json:"total"` }
type SearchParameters ¶
func NewSearchParameters ¶
func NewSearchParameters() SearchParameters
type Slack ¶
type Slack struct {
// contains filtered or unexported fields
}
func (*Slack) AddReaction ¶
AddReaction adds a reaction emoji to a message, file or file comment.
func (*Slack) ArchiveChannel ¶
ArchiveChannel archives the given channel
func (*Slack) ArchiveGroup ¶
ArchiveGroup archives a private group
func (*Slack) AuthTest ¶
func (api *Slack) AuthTest() (response *AuthTestResponse, error error)
AuthTest tests if the user is able to do authenticated requests or not
func (*Slack) CloseGroup ¶
CloseGroup closes a private group
func (*Slack) CloseIMChannel ¶
CloseIMChannel closes the direct message channel
func (*Slack) CreateChannel ¶
CreateChannel creates a channel with the given name and returns a *Channel
func (*Slack) CreateChildGroup ¶
CreateChildGroup creates a new private group archiving the old one This method takes an existing private group and performs the following steps:
- Renames the existing group (from "example" to "example-archived").
- Archives the existing group.
- Creates a new group with the name of the existing group.
- Adds all members of the existing group to the new group.
func (*Slack) CreateGroup ¶
CreateGroup creates a private group
func (*Slack) DeleteFile ¶
DeleteFile deletes a file
func (*Slack) DeleteMessage ¶
DeleteMessage deletes a message in a channel
func (*Slack) GetChannelHistory ¶
func (api *Slack) GetChannelHistory(channelId string, params HistoryParameters) (*History, error)
GetChannelHistory retrieves the channel history
func (*Slack) GetChannelInfo ¶
GetChannelInfo retrieves the given channel
func (*Slack) GetChannels ¶
GetChannels retrieves all the channels
func (*Slack) GetFileInfo ¶
GetFileInfo retrieves a file and related comments
func (*Slack) GetFiles ¶
func (api *Slack) GetFiles(params GetFilesParameters) ([]File, *Paging, error)
GetFiles retrieves all files according to the parameters given
func (*Slack) GetGroupHistory ¶
func (api *Slack) GetGroupHistory(groupId string, params HistoryParameters) (*History, error)
GetGroupHistory retrieves message history for a give group
func (*Slack) GetGroupInfo ¶
GetGroupInfo retrieves the given group
func (*Slack) GetIMChannels ¶
GetIMChannels returns the list of direct message channels
func (*Slack) GetIMHistory ¶
func (api *Slack) GetIMHistory(channelId string, params HistoryParameters) (*History, error)
GetIMHistory retrieves the direct message channel history
func (*Slack) GetReactions ¶
func (api *Slack) GetReactions(item ItemRef, params GetReactionsParameters) ([]ItemReaction, error)
GetReactions returns details about the reactions on an item.
func (*Slack) GetStarred ¶
func (api *Slack) GetStarred(params StarsParameters) ([]StarredItem, *Paging, error)
GetStarred returns a list of StarredItem items. The user then has to iterate over them and figure out what they should be looking at according to what is in the Type.
for _, item := range items { switch c.Type { case "file_comment": log.Println(c.Comment) case "file": ... } }
func (*Slack) GetUserInfo ¶
GetUserInfo will retrive the complete user information
func (*Slack) GetUserPresence ¶
func (api *Slack) GetUserPresence(userId string) (*UserPresence, error)
GetUserPresence will retrieve the current presence status of given user.
func (*Slack) InviteGuest ¶
func (*Slack) InviteRestricted ¶
func (*Slack) InviteUserToChannel ¶
InviteUserToChannel invites a user to a given channel and returns a *Channel
func (*Slack) InviteUserToGroup ¶
InviteUserToGroup invites a user to a group
func (*Slack) JoinChannel ¶
JoinChannel joins the currently authenticated user to a channel
func (*Slack) KickUserFromChannel ¶
KickUserFromChannel kicks a user from a given channel
func (*Slack) KickUserFromGroup ¶
KickUserFromGroup kicks a user from a group
func (*Slack) LeaveChannel ¶
LeaveChannel makes the authenticated user leave the given channel
func (*Slack) LeaveGroup ¶
LeaveGroup makes authenticated user leave the group
func (*Slack) ListReactions ¶
func (api *Slack) ListReactions(params ListReactionsParameters) ([]ReactedItem, *Paging, error)
ListReactions returns information about the items a user reacted to.
func (*Slack) MarkIMChannel ¶
MarkIMChannel sets the read mark of a direct message channel to a specific point
func (*Slack) OpenIMChannel ¶
OpenIMChannel opens a direct message channel to the user provided as argument Returns some status and the channelId
func (*Slack) PostMessage ¶
func (api *Slack) PostMessage(channelId string, text string, params PostMessageParameters) (channel string, timestamp string, err error)
PostMessage sends a message to a channel Message is escaped by default according to https://api.slack.com/docs/formatting
func (*Slack) RemoveReaction ¶
RemoveReaction removes a reaction emoji from a message, file or file comment.
func (*Slack) RenameChannel ¶
RenameChannel renames a given channel
func (*Slack) RenameGroup ¶
RenameGroup renames a group XXX: They return a channel, not a group. What is this crap? :( Inconsistent api it seems.
func (*Slack) Search ¶
func (api *Slack) Search(query string, params SearchParameters) (*SearchMessages, *SearchFiles, error)
func (*Slack) SearchFiles ¶
func (api *Slack) SearchFiles(query string, params SearchParameters) (*SearchFiles, error)
func (*Slack) SearchMessages ¶
func (api *Slack) SearchMessages(query string, params SearchParameters) (*SearchMessages, error)
func (*Slack) SetChannelPurpose ¶
SetChannelPurpose sets the channel purpose and returns the purpose that was successfully set
func (*Slack) SetChannelReadMark ¶
SetChannelReadMark sets the read mark of a given channel to a specific point Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a timer before making the call. In this way, any further updates needed during the timeout will not generate extra calls (just one per channel). This is useful for when reading scroll-back history, or following a busy live channel. A timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout.
func (*Slack) SetChannelTopic ¶
SetChannelTopic sets the channel topic and returns the topic that was successfully set
func (*Slack) SetDebug ¶
SetDebug switches the api into debug mode When in debug mode, it logs various info about what its doing If you ever use this in production, don't call SetDebug(true)
func (*Slack) SetGroupPurpose ¶
SetGroupPurpose sets the group purpose
func (*Slack) SetGroupReadMark ¶
SetGroupReadMark sets the read mark on a private group Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a timer before making the call. In this way, any further updates needed during the timeout will not generate extra calls (just one per channel). This is useful for when reading scroll-back history, or following a busy live channel. A timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout.
func (*Slack) SetGroupTopic ¶
SetGroupTopic sets the group topic
func (*Slack) SetUserAsActive ¶
SetUserAsActive marks the currently authenticated user as active
func (*Slack) SetUserPresence ¶
SetUserPresence changes the currently authenticated user presence
func (*Slack) UnarchiveChannel ¶
UnarchiveChannel unarchives the given channel
func (*Slack) UnarchiveGroup ¶
UnarchiveGroup unarchives a private group
func (*Slack) UpdateMessage ¶
UpdateMessage updates a message in a channel
func (*Slack) UploadFile ¶
func (api *Slack) UploadFile(params FileUploadParameters) (file *File, err error)
UploadFile uploads a file
type SlackEvent ¶
type SlackEvent struct { Type uint64 Data interface{} }
type SlackResponse ¶
type SlackWS ¶
type SlackWS struct { Slack // contains filtered or unexported fields }
func (*SlackWS) HandleIncomingEvents ¶
func (api *SlackWS) HandleIncomingEvents(ch chan SlackEvent)
func (*SlackWS) NewOutgoingMessage ¶
func (api *SlackWS) NewOutgoingMessage(text string, channel string) *OutgoingMessage
NewOutGoingMessage prepares an OutgoingMessage that the user can use to send a message
func (*SlackWS) SendMessage ¶
func (api *SlackWS) SendMessage(msg *OutgoingMessage) error
type SlackWSError ¶
func (SlackWSError) Error ¶
func (s SlackWSError) Error() string
type SlackWSResponse ¶
type SlackWSResponse struct { Ok bool `json:"ok"` Error *SlackWSError `json:"error"` }
type StarAddedEvent ¶
type StarAddedEvent starEvent
type StarRemovedEvent ¶
type StarRemovedEvent starEvent
type StarsParameters ¶
func NewStarsParameters ¶
func NewStarsParameters() StarsParameters
type TeamDomainChangeEvent ¶
type TeamJoinEvent ¶
type TeamMigrationStartedEvent ¶
type TeamMigrationStartedEvent struct {
Type string `json:"type"`
}
type TeamPrefChangeEvent ¶
type TeamRenameEvent ¶
type TeamRenameEvent struct { Type string `json:"type"` Name string `json:"name,omitempty"` EventTimestamp *JSONTimeString `json:"event_ts,omitempty"` }
type User ¶
type User struct { Id string `json:"id"` Name string `json:"name"` Deleted bool `json:"deleted"` Color string `json:"color"` RealName string `json:"real_name"` TZ string `json:"tz,omitempty"` TZLabel string `json:"tz_label"` TZOffset int `json:"tz_offset"` Profile UserProfile `json:"profile"` IsBot bool `json:"is_bot"` IsAdmin bool `json:"is_admin"` IsOwner bool `json:"is_owner"` IsPrimaryOwner bool `json:"is_primary_owner"` IsRestricted bool `json:"is_restricted"` IsUltraRestricted bool `json:"is_ultra_restricted"` Has2FA bool `json:"has_2fa"` HasFiles bool `json:"has_files"` Presence string `json:"presence"` }
User contains all the information of a user
type UserChangeEvent ¶
type UserDetails ¶
type UserDetails struct { Id string `json:"id"` Name string `json:"name"` Created JSONTime `json:"created"` ManualPresence string `json:"manual_presence"` Prefs UserPrefs `json:"prefs"` }
UserDetails contains user details coming in the initial response from StartRTM
type UserPresence ¶
type UserPresence struct { Presence string `json:"presence,omitempty"` Online bool `json:"online,omitempty"` AutoAway bool `json:"auto_away,omitempty"` ManualAway bool `json:"manual_away,omitempty"` ConnectionCount int `json:"connection_count,omitempty"` LastActivity JSONTime `json:"last_activity,omitempty"` }
UserPresence contains details about a user online status
type UserProfile ¶
type UserProfile struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` RealName string `json:"real_name"` RealNameNormalized string `json:"real_name_normalized"` Email string `json:"email"` Skype string `json:"skype"` Phone string `json:"phone"` Image24 string `json:"image_24"` Image32 string `json:"image_32"` Image48 string `json:"image_48"` Image72 string `json:"image_72"` Image192 string `json:"image_192"` ImageOriginal string `json:"image_original"` Title string `json:"title"` }
UserProfile contains all the information details of a given user
type UserTypingEvent ¶
Source Files ¶
- admin.go
- channels.go
- chat.go
- config.go
- dm.go
- emoji.go
- files.go
- groups.go
- history.go
- info.go
- item.go
- messages.go
- misc.go
- oauth.go
- pagination.go
- reactions.go
- search.go
- slack.go
- stars.go
- users.go
- websocket.go
- websocket_channels.go
- websocket_dm.go
- websocket_files.go
- websocket_groups.go
- websocket_misc.go
- websocket_reactions.go
- websocket_stars.go
- websocket_teams.go