slack: github.com/nlopes/slack Index | Examples | Files | Directories

package slack

import "github.com/nlopes/slack"

Index

Examples

Package Files

admin.go attachments.go auth.go backoff.go block.go block_action.go block_context.go block_conv.go block_divider.go block_element.go block_image.go block_object.go block_section.go bots.go channels.go chat.go comment.go conversation.go dialog.go dialog_select.go dialog_text.go dnd.go emoji.go errors.go files.go groups.go history.go im.go info.go interactions.go item.go logger.go messageID.go messages.go misc.go oauth.go pagination.go pins.go reactions.go reminders.go rtm.go search.go security.go slack.go slash.go stars.go team.go usergroups.go users.go webhooks.go websocket.go websocket_channels.go websocket_dm.go websocket_dnd.go websocket_files.go websocket_groups.go websocket_internals.go websocket_managed_conn.go websocket_misc.go websocket_pins.go websocket_reactions.go websocket_stars.go websocket_subteam.go websocket_teams.go

Constants

const (
    METImage      MessageElementType = "image"
    METButton     MessageElementType = "button"
    METOverflow   MessageElementType = "overflow"
    METDatepicker MessageElementType = "datepicker"

    MixedElementImage MixedElementType = "mixed_image"
    MixedElementText  MixedElementType = "mixed_text"

    OptTypeStatic        string = "static_select"
    OptTypeExternal      string = "external_select"
    OptTypeUser          string = "users_select"
    OptTypeConversations string = "conversations_select"
    OptTypeChannels      string = "channels_select"
)
const (
    MarkdownType  = "mrkdwn"
    PlainTextType = "plain_text"
)

blockObject object types

const (
    DEFAULT_MESSAGE_USERNAME         = ""
    DEFAULT_MESSAGE_REPLY_BROADCAST  = false
    DEFAULT_MESSAGE_ASUSER           = false
    DEFAULT_MESSAGE_PARSE            = ""
    DEFAULT_MESSAGE_THREAD_TIMESTAMP = ""
    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 (
    ErrAlreadyDisconnected  = errorsx.String("Invalid call to Disconnect - Slack API is already disconnected")
    ErrRTMDisconnected      = errorsx.String("disconnect received while trying to connect")
    ErrParametersMissing    = errorsx.String("received empty parameters")
    ErrInvalidConfiguration = errorsx.String("invalid configuration")
    ErrMissingHeaders       = errorsx.String("missing headers")
    ErrExpiredTimestamp     = errorsx.String("timestamp is too old")
)

Errors returned by various methods.

const (
    // Add here the defaults in the siten
    DEFAULT_FILES_USER    = ""
    DEFAULT_FILES_CHANNEL = ""
    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
    DEFAULT_HISTORY_UNREADS   = false
)
const (
    InteractionTypeDialogCancellation = InteractionType("dialog_cancellation")
    InteractionTypeDialogSubmission   = InteractionType("dialog_submission")
    InteractionTypeDialogSuggestion   = InteractionType("dialog_suggestion")
    InteractionTypeInteractionMessage = InteractionType("interactive_message")
    InteractionTypeMessageAction      = InteractionType("message_action")
    InteractionTypeBlockActions       = InteractionType("block_actions")
)

Types of interactions that can be received.

const (
    TYPE_MESSAGE      = "message"
    TYPE_FILE         = "file"
    TYPE_FILE_COMMENT = "file_comment"
    TYPE_CHANNEL      = "channel"
    TYPE_IM           = "im"
    TYPE_GROUP        = "group"
)
const (
    // ResponseTypeInChannel in channel response for slash commands.
    ResponseTypeInChannel = "in_channel"
    // ResponseTypeEphemeral ephemeral respone for slash commands.
    ResponseTypeEphemeral = "ephemeral"
)
const (
    DEFAULT_REACTIONS_USER  = ""
    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     = 20
    DEFAULT_SEARCH_PAGE      = 1
)
const (
    // APIURL of the slack api.
    APIURL = "https://slack.com/api/"
    // WEBAPIURLFormat ...
    WEBAPIURLFormat = "https://%s.slack.com/api/users.admin.%s?t=%d"
)
const (
    DEFAULT_STARS_USER  = ""
    DEFAULT_STARS_COUNT = 100
    DEFAULT_STARS_PAGE  = 1
)
const (
    DEFAULT_LOGINS_COUNT = 100
    DEFAULT_LOGINS_PAGE  = 1
)
const (
    DEFAULT_USER_PHOTO_CROP_X = -1
    DEFAULT_USER_PHOTO_CROP_Y = -1
    DEFAULT_USER_PHOTO_CROP_W = -1
)
const (
    // MaxMessageTextLength is the current maximum message length in number of characters as defined here
    // https://api.slack.com/rtm#limits
    MaxMessageTextLength = 4000
)

Variables

var EventMapping = map[string]interface{}{
    "message":         MessageEvent{},
    "presence_change": PresenceChangeEvent{},
    "user_typing":     UserTypingEvent{},

    "channel_marked":          ChannelMarkedEvent{},
    "channel_created":         ChannelCreatedEvent{},
    "channel_joined":          ChannelJoinedEvent{},
    "channel_left":            ChannelLeftEvent{},
    "channel_deleted":         ChannelDeletedEvent{},
    "channel_rename":          ChannelRenameEvent{},
    "channel_archive":         ChannelArchiveEvent{},
    "channel_unarchive":       ChannelUnarchiveEvent{},
    "channel_history_changed": ChannelHistoryChangedEvent{},

    "dnd_updated":      DNDUpdatedEvent{},
    "dnd_updated_user": DNDUpdatedEvent{},

    "im_created":         IMCreatedEvent{},
    "im_open":            IMOpenEvent{},
    "im_close":           IMCloseEvent{},
    "im_marked":          IMMarkedEvent{},
    "im_history_changed": IMHistoryChangedEvent{},

    "group_marked":          GroupMarkedEvent{},
    "group_open":            GroupOpenEvent{},
    "group_joined":          GroupJoinedEvent{},
    "group_left":            GroupLeftEvent{},
    "group_close":           GroupCloseEvent{},
    "group_rename":          GroupRenameEvent{},
    "group_archive":         GroupArchiveEvent{},
    "group_unarchive":       GroupUnarchiveEvent{},
    "group_history_changed": GroupHistoryChangedEvent{},

    "file_created":         FileCreatedEvent{},
    "file_shared":          FileSharedEvent{},
    "file_unshared":        FileUnsharedEvent{},
    "file_public":          FilePublicEvent{},
    "file_private":         FilePrivateEvent{},
    "file_change":          FileChangeEvent{},
    "file_deleted":         FileDeletedEvent{},
    "file_comment_added":   FileCommentAddedEvent{},
    "file_comment_edited":  FileCommentEditedEvent{},
    "file_comment_deleted": FileCommentDeletedEvent{},

    "pin_added":   PinAddedEvent{},
    "pin_removed": PinRemovedEvent{},

    "star_added":   StarAddedEvent{},
    "star_removed": StarRemovedEvent{},

    "reaction_added":   ReactionAddedEvent{},
    "reaction_removed": ReactionRemovedEvent{},

    "pref_change": PrefChangeEvent{},

    "team_join":              TeamJoinEvent{},
    "team_rename":            TeamRenameEvent{},
    "team_pref_change":       TeamPrefChangeEvent{},
    "team_domain_change":     TeamDomainChangeEvent{},
    "team_migration_started": TeamMigrationStartedEvent{},

    "manual_presence_change": ManualPresenceChangeEvent{},

    "user_change": UserChangeEvent{},

    "emoji_changed": EmojiChangedEvent{},

    "commands_changed": CommandsChangedEvent{},

    "email_domain_changed": EmailDomainChangedEvent{},

    "bot_added":   BotAddedEvent{},
    "bot_changed": BotChangedEvent{},

    "accounts_changed": AccountsChangedEvent{},

    "reconnect_url": ReconnectUrlEvent{},

    "member_joined_channel": MemberJoinedChannelEvent{},
    "member_left_channel":   MemberLeftChannelEvent{},

    "subteam_created":      SubteamCreatedEvent{},
    "subteam_self_added":   SubteamSelfAddedEvent{},
    "subteam_self_removed": SubteamSelfRemovedEvent{},
    "subteam_updated":      SubteamUpdatedEvent{},
}

EventMapping holds a mapping of event names to their corresponding struct implementations. The structs should be instances of the unmarshalling target for the matching event type.

func GetOAuthToken Uses

func GetOAuthToken(client httpClient, clientID, clientSecret, code, redirectURI string) (accessToken string, scope string, err error)

GetOAuthToken retrieves an AccessToken

func GetOAuthTokenContext Uses

func GetOAuthTokenContext(ctx context.Context, client httpClient, clientID, clientSecret, code, redirectURI string) (accessToken string, scope string, err error)

GetOAuthTokenContext retrieves an AccessToken with a custom context

func OptionAPIURL Uses

func OptionAPIURL(u string) func(*Client)

OptionAPIURL set the url for the client. only useful for testing.

func OptionDebug Uses

func OptionDebug(b bool) func(*Client)

OptionDebug enable debugging for the client

func OptionHTTPClient Uses

func OptionHTTPClient(client httpClient) func(*Client)

OptionHTTPClient - provide a custom http client to the slack client.

func OptionLog Uses

func OptionLog(l logger) func(*Client)

OptionLog set logging for client.

func PostWebhook Uses

func PostWebhook(url string, msg *WebhookMessage) error

func PostWebhookCustomHTTP Uses

func PostWebhookCustomHTTP(url string, httpClient *http.Client, msg *WebhookMessage) error

func UnsafeApplyMsgOptions Uses

func UnsafeApplyMsgOptions(token, channel, apiurl string, options ...MsgOption) (string, url.Values, error)

UnsafeApplyMsgOptions utility function for debugging/testing chat requests. NOTE: USE AT YOUR OWN RISK: No issues relating to the use of this function will be supported by the library.

type AccessLogParameters Uses

type AccessLogParameters struct {
    Count int
    Page  int
}

AccessLogParameters contains all the parameters necessary (including the optional ones) for a GetAccessLogs() request

func NewAccessLogParameters Uses

func NewAccessLogParameters() AccessLogParameters

NewAccessLogParameters provides an instance of AccessLogParameters with all the sane default values set

type Accessory Uses

type Accessory struct {
    ImageElement      *ImageBlockElement
    ButtonElement     *ButtonBlockElement
    OverflowElement   *OverflowBlockElement
    DatePickerElement *DatePickerBlockElement
    SelectElement     *SelectBlockElement
}

func NewAccessory Uses

func NewAccessory(element BlockElement) *Accessory

NewAccessory returns a new Accessory for a given block element

func (*Accessory) MarshalJSON Uses

func (a *Accessory) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaller interface for Accessory so that any JSON marshalling is delegated and proper type determination can be made before marshal

func (*Accessory) UnmarshalJSON Uses

func (a *Accessory) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaller interface for Accessory, so that any JSON unmarshalling is delegated and proper type determination can be made before unmarshal

type AccountsChangedEvent Uses

type AccountsChangedEvent struct {
    Type string `json:"type"`
}

AccountsChangedEvent represents the accounts changed event

type AckErrorEvent Uses

type AckErrorEvent struct {
    ErrorObj error
}

AckErrorEvent i

func (*AckErrorEvent) Error Uses

func (a *AckErrorEvent) Error() string

type AckMessage Uses

type AckMessage struct {
    ReplyTo   int    `json:"reply_to"`
    Timestamp string `json:"ts"`
    Text      string `json:"text"`
    RTMResponse
}

AckMessage is used for messages received in reply to other messages

type ActionBlock Uses

type ActionBlock struct {
    Type     MessageBlockType `json:"type"`
    BlockID  string           `json:"block_id,omitempty"`
    Elements BlockElements    `json:"elements"`
}

ActionBlock defines data that is used to hold interactive elements.

More Information: https://api.slack.com/reference/messaging/blocks#actions

func NewActionBlock Uses

func NewActionBlock(blockID string, elements ...BlockElement) *ActionBlock

NewActionBlock returns a new instance of an Action Block

func (ActionBlock) BlockType Uses

func (s ActionBlock) BlockType() MessageBlockType

BlockType returns the type of the block

type ActionCallbacks Uses

type ActionCallbacks struct {
    AttachmentActions []*AttachmentAction
    BlockActions      []*BlockAction
}

ActionCallback is a convenience struct defined to allow dynamic unmarshalling of the "actions" value in Slack's JSON response, which varies depending on block type

func (*ActionCallbacks) UnmarshalJSON Uses

func (a *ActionCallbacks) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Marshaller interface in order to delegate marshalling and allow for proper type assertion when decoding the response

type Attachment Uses

type Attachment struct {
    Color    string `json:"color,omitempty"`
    Fallback string `json:"fallback"`

    CallbackID string `json:"callback_id,omitempty"`
    ID         int    `json:"id,omitempty"`

    AuthorID      string `json:"author_id,omitempty"`
    AuthorName    string `json:"author_name,omitempty"`
    AuthorSubname string `json:"author_subname,omitempty"`
    AuthorLink    string `json:"author_link,omitempty"`
    AuthorIcon    string `json:"author_icon,omitempty"`

    Title     string `json:"title,omitempty"`
    TitleLink string `json:"title_link,omitempty"`
    Pretext   string `json:"pretext,omitempty"`
    Text      string `json:"text"`

    ImageURL string `json:"image_url,omitempty"`
    ThumbURL string `json:"thumb_url,omitempty"`

    Fields     []AttachmentField  `json:"fields,omitempty"`
    Actions    []AttachmentAction `json:"actions,omitempty"`
    MarkdownIn []string           `json:"mrkdwn_in,omitempty"`

    Footer     string `json:"footer,omitempty"`
    FooterIcon string `json:"footer_icon,omitempty"`

    Ts  json.Number `json:"ts,omitempty"`
}

Attachment contains all the information for an attachment

type AttachmentAction Uses

type AttachmentAction struct {
    Name            string                        `json:"name"`                       // Required.
    Text            string                        `json:"text"`                       // Required.
    Style           string                        `json:"style,omitempty"`            // Optional. Allowed values: "default", "primary", "danger".
    Type            actionType                    `json:"type"`                       // Required. Must be set to "button" or "select".
    Value           string                        `json:"value,omitempty"`            // Optional.
    DataSource      string                        `json:"data_source,omitempty"`      // Optional.
    MinQueryLength  int                           `json:"min_query_length,omitempty"` // Optional. Default value is 1.
    Options         []AttachmentActionOption      `json:"options,omitempty"`          // Optional. Maximum of 100 options can be provided in each menu.
    SelectedOptions []AttachmentActionOption      `json:"selected_options,omitempty"` // Optional. The first element of this array will be set as the pre-selected option for this menu.
    OptionGroups    []AttachmentActionOptionGroup `json:"option_groups,omitempty"`    // Optional.
    Confirm         *ConfirmationField            `json:"confirm,omitempty"`          // Optional.
    URL             string                        `json:"url,omitempty"`              // Optional.
}

AttachmentAction is a button or menu to be included in the attachment. Required when using message buttons or menus and otherwise not useful. A maximum of 5 actions may be provided per attachment.

type AttachmentActionCallback Uses

type AttachmentActionCallback InteractionCallback

AttachmentActionCallback is sent from Slack when a user clicks a button in an interactive message (aka AttachmentAction) DEPRECATED: use InteractionCallback

type AttachmentActionOption Uses

type AttachmentActionOption struct {
    Text        string `json:"text"`                  // Required.
    Value       string `json:"value"`                 // Required.
    Description string `json:"description,omitempty"` // Optional. Up to 30 characters.
}

AttachmentActionOption the individual option to appear in action menu.

type AttachmentActionOptionGroup Uses

type AttachmentActionOptionGroup struct {
    Text    string                   `json:"text"`    // Required.
    Options []AttachmentActionOption `json:"options"` // Required.
}

AttachmentActionOptionGroup is a semi-hierarchal way to list available options to appear in action menu.

type AttachmentField Uses

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 AuthRevokeResponse Uses

type AuthRevokeResponse struct {
    SlackResponse      // Contains the "ok", and "Error", if any
    Revoked       bool `json:"revoked,omitempty"`
}

AuthRevokeResponse contains our Auth response from the auth.revoke endpoint

type AuthTestResponse Uses

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"`
    // EnterpriseID is only returned when an enterprise id present
    EnterpriseID string `json:"enterprise_id,omitempty"`
}

AuthTestResponse ...

type BillableInfoResponse Uses

type BillableInfoResponse struct {
    BillableInfo map[string]BillingActive `json:"billable_info"`
    SlackResponse
}

type BillingActive Uses

type BillingActive struct {
    BillingActive bool `json:"billing_active"`
}

type Block Uses

type Block interface {
    BlockType() MessageBlockType
}

Block defines an interface all block types should implement to ensure consistency between blocks.

type BlockAction Uses

type BlockAction struct {
    ActionID             string            `json:"action_id"`
    BlockID              string            `json:"block_id"`
    Type                 actionType        `json:"type"`
    Text                 TextBlockObject   `json:"text"`
    Value                string            `json:"value"`
    ActionTs             string            `json:"action_ts"`
    SelectedOption       OptionBlockObject `json:"selected_option"`
    SelectedUser         string            `json:"selected_user"`
    SelectedChannel      string            `json:"selected_channel"`
    SelectedConversation string            `json:"selected_conversation"`
    SelectedDate         string            `json:"selected_date"`
    InitialOption        OptionBlockObject `json:"initial_option"`
    InitialUser          string            `json:"initial_user"`
    InitialChannel       string            `json:"initial_channel"`
    InitialConversation  string            `json:"initial_conversation"`
    InitialDate          string            `json:"initial_date"`
}

BlockAction is the action callback sent when a block is interacted with

type BlockElement Uses

type BlockElement interface {
    ElementType() MessageElementType
}

BlockElement defines an interface that all block element types should implement.

type BlockElements Uses

type BlockElements struct {
    ElementSet []BlockElement `json:"elements,omitempty"`
}

BlockElements is a convenience struct defined to allow dynamic unmarshalling of the "elements" value in Slack's JSON response, which varies depending on BlockElement type

func (*BlockElements) MarshalJSON Uses

func (b *BlockElements) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaller interface for BlockElements so that any JSON marshalling is delegated and proper type determination can be made before marshal

func (*BlockElements) UnmarshalJSON Uses

func (b *BlockElements) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaller interface for BlockElements, so that any JSON unmarshalling is delegated and proper type determination can be made before unmarshal

type BlockObjects Uses

type BlockObjects struct {
    TextObjects         []*TextBlockObject
    ConfirmationObjects []*ConfirmationBlockObject
    OptionObjects       []*OptionBlockObject
    OptionGroupObjects  []*OptionGroupBlockObject
}

func (*BlockObjects) UnmarshalJSON Uses

func (b *BlockObjects) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaller interface for BlockObjects, so that any JSON unmarshalling is delegated and proper type determination can be made before unmarshal

type Blocks Uses

type Blocks struct {
    BlockSet []Block `json:"blocks,omitempty"`
}

Blocks is a convenience struct defined to allow dynamic unmarshalling of the "blocks" value in Slack's JSON response, which varies depending on block type

func (Blocks) MarshalJSON Uses

func (b Blocks) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaller interface for Blocks so that any JSON marshalling is delegated and proper type determination can be made before marshal

func (*Blocks) UnmarshalJSON Uses

func (b *Blocks) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaller interface for Blocks, so that any JSON unmarshalling is delegated and proper type determination can be made before unmarshal

type Bot Uses

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 Uses

type BotAddedEvent struct {
    Type string `json:"type"`
    Bot  Bot    `json:"bot"`
}

BotAddedEvent represents the bot added event

type BotChangedEvent Uses

type BotChangedEvent struct {
    Type string `json:"type"`
    Bot  Bot    `json:"bot"`
}

BotChangedEvent represents the bot changed event

type ButtonBlockElement Uses

type ButtonBlockElement struct {
    Type     MessageElementType       `json:"type,omitempty"`
    Text     *TextBlockObject         `json:"text"`
    ActionID string                   `json:"action_id,omitempty"`
    URL      string                   `json:"url,omitempty"`
    Value    string                   `json:"value,omitempty"`
    Confirm  *ConfirmationBlockObject `json:"confirm,omitempty"`
    Style    Style                    `json:"style,omitempty"`
}

ButtonBlockElement defines an interactive element that inserts a button. The button can be a trigger for anything from opening a simple link to starting a complex workflow.

More Information: https://api.slack.com/reference/messaging/block-elements#button

func NewButtonBlockElement Uses

func NewButtonBlockElement(actionID, value string, text *TextBlockObject) *ButtonBlockElement

NewButtonBlockElement returns an instance of a new button element to be used within a block

func (ButtonBlockElement) ElementType Uses

func (s ButtonBlockElement) ElementType() MessageElementType

ElementType returns the type of the element

func (*ButtonBlockElement) WithStyle Uses

func (s *ButtonBlockElement) WithStyle(style Style)

add styling to button object

type Channel Uses

type Channel struct {
    GroupConversation
    IsChannel bool   `json:"is_channel"`
    IsGeneral bool   `json:"is_general"`
    IsMember  bool   `json:"is_member"`
    Locale    string `json:"locale"`
}

Channel contains information about the channel

type ChannelArchiveEvent Uses

type ChannelArchiveEvent ChannelInfoEvent

ChannelArchiveEvent represents the Channel archive event

type ChannelCreatedEvent Uses

type ChannelCreatedEvent struct {
    Type           string             `json:"type"`
    Channel        ChannelCreatedInfo `json:"channel"`
    EventTimestamp string             `json:"event_ts"`
}

ChannelCreatedEvent represents the Channel created event

type ChannelCreatedInfo Uses

type ChannelCreatedInfo struct {
    ID        string `json:"id"`
    IsChannel bool   `json:"is_channel"`
    Name      string `json:"name"`
    Created   int    `json:"created"`
    Creator   string `json:"creator"`
}

ChannelCreatedInfo represents the information associated with the Channel created event

type ChannelDeletedEvent Uses

type ChannelDeletedEvent ChannelInfoEvent

ChannelDeletedEvent represents the Channel deleted event

type ChannelHistoryChangedEvent Uses

type ChannelHistoryChangedEvent struct {
    Type           string `json:"type"`
    Latest         string `json:"latest"`
    Timestamp      string `json:"ts"`
    EventTimestamp string `json:"event_ts"`
}

ChannelHistoryChangedEvent represents the Channel history changed event

type ChannelInfoEvent Uses

type ChannelInfoEvent struct {
    // channel_left
    // channel_deleted
    // channel_archive
    // channel_unarchive
    Type      string `json:"type"`
    Channel   string `json:"channel"`
    User      string `json:"user,omitempty"`
    Timestamp string `json:"ts,omitempty"`
}

ChannelInfoEvent represents the Channel info event

type ChannelJoinedEvent Uses

type ChannelJoinedEvent struct {
    Type    string  `json:"type"`
    Channel Channel `json:"channel"`
}

ChannelJoinedEvent represents the Channel joined event

type ChannelLeftEvent Uses

type ChannelLeftEvent ChannelInfoEvent

ChannelLeftEvent represents the Channel left event

type ChannelMarkedEvent Uses

type ChannelMarkedEvent ChannelInfoEvent

ChannelMarkedEvent represents the Channel marked event

type ChannelRenameEvent Uses

type ChannelRenameEvent struct {
    Type      string            `json:"type"`
    Channel   ChannelRenameInfo `json:"channel"`
    Timestamp string            `json:"event_ts"`
}

ChannelRenameEvent represents the Channel rename event

type ChannelRenameInfo Uses

type ChannelRenameInfo struct {
    ID      string `json:"id"`
    Name    string `json:"name"`
    Created string `json:"created"`
}

ChannelRenameInfo represents the information associated with a Channel rename event

type ChannelUnarchiveEvent Uses

type ChannelUnarchiveEvent ChannelInfoEvent

ChannelUnarchiveEvent represents the Channel unarchive event

type Client Uses

type Client struct {
    // contains filtered or unexported fields
}

func New Uses

func New(token string, options ...Option) *Client

New builds a slack client from the provided token and options.

func (*Client) AddChannelReminder Uses

func (api *Client) AddChannelReminder(channelID, text, time string) (*Reminder, error)

AddChannelReminder adds a reminder for a channel.

See https://api.slack.com/methods/reminders.add (NOTE: the ability to set reminders on a channel is currently undocumented but has been tested to work)

func (*Client) AddPin Uses

func (api *Client) AddPin(channel string, item ItemRef) error

AddPin pins an item in a channel

func (*Client) AddPinContext Uses

func (api *Client) AddPinContext(ctx context.Context, channel string, item ItemRef) error

AddPinContext pins an item in a channel with a custom context

func (*Client) AddReaction Uses

func (api *Client) AddReaction(name string, item ItemRef) error

AddReaction adds a reaction emoji to a message, file or file comment.

func (*Client) AddReactionContext Uses

func (api *Client) AddReactionContext(ctx context.Context, name string, item ItemRef) error

AddReactionContext adds a reaction emoji to a message, file or file comment with a custom context.

func (*Client) AddStar Uses

func (api *Client) AddStar(channel string, item ItemRef) error

AddStar stars an item in a channel

func (*Client) AddStarContext Uses

func (api *Client) AddStarContext(ctx context.Context, channel string, item ItemRef) error

AddStarContext stars an item in a channel with a custom context

func (*Client) AddUserReminder Uses

func (api *Client) AddUserReminder(userID, text, time string) (*Reminder, error)

AddUserReminder adds a reminder for a user.

See https://api.slack.com/methods/reminders.add (NOTE: the ability to set reminders on a channel is currently undocumented but has been tested to work)

func (*Client) ArchiveChannel Uses

func (api *Client) ArchiveChannel(channelID string) error

ArchiveChannel archives the given channel see https://api.slack.com/methods/channels.archive

func (*Client) ArchiveChannelContext Uses

func (api *Client) ArchiveChannelContext(ctx context.Context, channelID string) (err error)

ArchiveChannelContext archives the given channel with a custom context see https://api.slack.com/methods/channels.archive

func (*Client) ArchiveConversation Uses

func (api *Client) ArchiveConversation(channelID string) error

ArchiveConversation archives a conversation

func (*Client) ArchiveConversationContext Uses

func (api *Client) ArchiveConversationContext(ctx context.Context, channelID string) error

ArchiveConversationContext archives a conversation with a custom context

func (*Client) ArchiveGroup Uses

func (api *Client) ArchiveGroup(group string) error

ArchiveGroup archives a private group

func (*Client) ArchiveGroupContext Uses

func (api *Client) ArchiveGroupContext(ctx context.Context, group string) error

ArchiveGroupContext archives a private group

func (*Client) AuthTest Uses

func (api *Client) AuthTest() (response *AuthTestResponse, error error)

AuthTest tests if the user is able to do authenticated requests or not

func (*Client) AuthTestContext Uses

func (api *Client) AuthTestContext(ctx context.Context) (response *AuthTestResponse, err error)

AuthTestContext tests if the user is able to do authenticated requests or not with a custom context

func (*Client) CloseConversation Uses

func (api *Client) CloseConversation(channelID string) (noOp bool, alreadyClosed bool, err error)

CloseConversation closes a direct message or multi-person direct message

func (*Client) CloseConversationContext Uses

func (api *Client) CloseConversationContext(ctx context.Context, channelID string) (noOp bool, alreadyClosed bool, err error)

CloseConversationContext closes a direct message or multi-person direct message with a custom context

func (*Client) CloseIMChannel Uses

func (api *Client) CloseIMChannel(channel string) (bool, bool, error)

CloseIMChannel closes the direct message channel

func (*Client) CloseIMChannelContext Uses

func (api *Client) CloseIMChannelContext(ctx context.Context, channel string) (bool, bool, error)

CloseIMChannelContext closes the direct message channel with a custom context

func (*Client) ConnectRTM Uses

func (api *Client) ConnectRTM() (info *Info, websocketURL string, err error)

ConnectRTM calls the "rtm.connect" endpoint and returns the provided URL and the compact Info block.

To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()` on it.

func (*Client) ConnectRTMContext Uses

func (api *Client) ConnectRTMContext(ctx context.Context) (info *Info, websocketURL string, err error)

ConnectRTMContext calls the "rtm.connect" endpoint and returns the provided URL and the compact Info block with a custom context.

To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()` on it.

func (*Client) CreateChannel Uses

func (api *Client) CreateChannel(channelName string) (*Channel, error)

CreateChannel creates a channel with the given name and returns a *Channel see https://api.slack.com/methods/channels.create

func (*Client) CreateChannelContext Uses

func (api *Client) CreateChannelContext(ctx context.Context, channelName string) (*Channel, error)

CreateChannelContext creates a channel with the given name and returns a *Channel with a custom context see https://api.slack.com/methods/channels.create

func (*Client) CreateChildGroup Uses

func (api *Client) CreateChildGroup(group string) (*Group, error)

CreateChildGroup creates a new private group archiving the old one This method takes an existing private group and performs the following steps:

1. Renames the existing group (from "example" to "example-archived").
2. Archives the existing group.
3. Creates a new group with the name of the existing group.
4. Adds all members of the existing group to the new group.

func (*Client) CreateChildGroupContext Uses

func (api *Client) CreateChildGroupContext(ctx context.Context, group string) (*Group, error)

CreateChildGroupContext creates a new private group archiving the old one with a custom context For more information see CreateChildGroup

func (*Client) CreateConversation Uses

func (api *Client) CreateConversation(channelName string, isPrivate bool) (*Channel, error)

CreateConversation initiates a public or private channel-based conversation

func (*Client) CreateConversationContext Uses

func (api *Client) CreateConversationContext(ctx context.Context, channelName string, isPrivate bool) (*Channel, error)

CreateConversationContext initiates a public or private channel-based conversation with a custom context

func (*Client) CreateGroup Uses

func (api *Client) CreateGroup(group string) (*Group, error)

CreateGroup creates a private group

func (*Client) CreateGroupContext Uses

func (api *Client) CreateGroupContext(ctx context.Context, group string) (*Group, error)

CreateGroupContext creates a private group

func (*Client) CreateUserGroup Uses

func (api *Client) CreateUserGroup(userGroup UserGroup) (UserGroup, error)

CreateUserGroup creates a new user group

func (*Client) CreateUserGroupContext Uses

func (api *Client) CreateUserGroupContext(ctx context.Context, userGroup UserGroup) (UserGroup, error)

CreateUserGroupContext creates a new user group with a custom context

func (*Client) Debug Uses

func (api *Client) Debug() bool

Debug returns if debug is enabled.

func (*Client) Debugf Uses

func (api *Client) Debugf(format string, v ...interface{})

Debugf print a formatted debug line.

func (*Client) Debugln Uses

func (api *Client) Debugln(v ...interface{})

Debugln print a debug line.

func (*Client) DeleteFile Uses

func (api *Client) DeleteFile(fileID string) error

DeleteFile deletes a file

func (*Client) DeleteFileComment Uses

func (api *Client) DeleteFileComment(commentID, fileID string) error

DeleteFileComment deletes a file's comment

func (*Client) DeleteFileCommentContext Uses

func (api *Client) DeleteFileCommentContext(ctx context.Context, fileID, commentID string) (err error)

DeleteFileCommentContext deletes a file's comment with a custom context

func (*Client) DeleteFileContext Uses

func (api *Client) DeleteFileContext(ctx context.Context, fileID string) (err error)

DeleteFileContext deletes a file with a custom context

func (*Client) DeleteMessage Uses

func (api *Client) DeleteMessage(channel, messageTimestamp string) (string, string, error)

DeleteMessage deletes a message in a channel

func (*Client) DeleteMessageContext Uses

func (api *Client) DeleteMessageContext(ctx context.Context, channel, messageTimestamp string) (string, string, error)

DeleteMessageContext deletes a message in a channel with a custom context

func (*Client) DeleteReminder Uses

func (api *Client) DeleteReminder(id string) error

DeleteReminder deletes an existing reminder.

See https://api.slack.com/methods/reminders.delete

func (*Client) DeleteUserPhoto Uses

func (api *Client) DeleteUserPhoto() error

DeleteUserPhoto deletes the current authenticated user's profile image

func (*Client) DeleteUserPhotoContext Uses

func (api *Client) DeleteUserPhotoContext(ctx context.Context) (err error)

DeleteUserPhotoContext deletes the current authenticated user's profile image with a custom context

func (*Client) DisableUser Uses

func (api *Client) DisableUser(teamName string, uid string) error

DisableUser disabled a user account, given a user ID

func (*Client) DisableUserContext Uses

func (api *Client) DisableUserContext(ctx context.Context, teamName string, uid string) error

DisableUserContext disabled a user account, given a user ID with a custom context

func (*Client) DisableUserGroup Uses

func (api *Client) DisableUserGroup(userGroup string) (UserGroup, error)

DisableUserGroup disables an existing user group

func (*Client) DisableUserGroupContext Uses

func (api *Client) DisableUserGroupContext(ctx context.Context, userGroup string) (UserGroup, error)

DisableUserGroupContext disables an existing user group with a custom context

func (*Client) EnableUserGroup Uses

func (api *Client) EnableUserGroup(userGroup string) (UserGroup, error)

EnableUserGroup enables an existing user group

func (*Client) EnableUserGroupContext Uses

func (api *Client) EnableUserGroupContext(ctx context.Context, userGroup string) (UserGroup, error)

EnableUserGroupContext enables an existing user group with a custom context

func (*Client) EndDND Uses

func (api *Client) EndDND() error

EndDND ends the user's scheduled Do Not Disturb session

func (*Client) EndDNDContext Uses

func (api *Client) EndDNDContext(ctx context.Context) error

EndDNDContext ends the user's scheduled Do Not Disturb session with a custom context

func (*Client) EndSnooze Uses

func (api *Client) EndSnooze() (*DNDStatus, error)

EndSnooze ends the current user's snooze mode

func (*Client) EndSnoozeContext Uses

func (api *Client) EndSnoozeContext(ctx context.Context) (*DNDStatus, error)

EndSnoozeContext ends the current user's snooze mode with a custom context

func (*Client) GetAccessLogs Uses

func (api *Client) GetAccessLogs(params AccessLogParameters) ([]Login, *Paging, error)

GetAccessLogs retrieves a page of logins according to the parameters given

func (*Client) GetAccessLogsContext Uses

func (api *Client) GetAccessLogsContext(ctx context.Context, params AccessLogParameters) ([]Login, *Paging, error)

GetAccessLogsContext retrieves a page of logins according to the parameters given with a custom context

func (*Client) GetBillableInfo Uses

func (api *Client) GetBillableInfo(user string) (map[string]BillingActive, error)

GetBillableInfo ...

func (*Client) GetBillableInfoContext Uses

func (api *Client) GetBillableInfoContext(ctx context.Context, user string) (map[string]BillingActive, error)

GetBillableInfoContext ...

func (*Client) GetBillableInfoForTeam Uses

func (api *Client) GetBillableInfoForTeam() (map[string]BillingActive, error)

GetBillableInfoForTeam returns the billing_active status of all users on the team.

func (*Client) GetBillableInfoForTeamContext Uses

func (api *Client) GetBillableInfoForTeamContext(ctx context.Context) (map[string]BillingActive, error)

GetBillableInfoForTeamContext returns the billing_active status of all users on the team with a custom context

func (*Client) GetBotInfo Uses

func (api *Client) GetBotInfo(bot string) (*Bot, error)

GetBotInfo will retrieve the complete bot information

func (*Client) GetBotInfoContext Uses

func (api *Client) GetBotInfoContext(ctx context.Context, bot string) (*Bot, error)

GetBotInfoContext will retrieve the complete bot information using a custom context

func (*Client) GetChannelHistory Uses

func (api *Client) GetChannelHistory(channelID string, params HistoryParameters) (*History, error)

GetChannelHistory retrieves the channel history see https://api.slack.com/methods/channels.history

func (*Client) GetChannelHistoryContext Uses

func (api *Client) GetChannelHistoryContext(ctx context.Context, channelID string, params HistoryParameters) (*History, error)

GetChannelHistoryContext retrieves the channel history with a custom context see https://api.slack.com/methods/channels.history

func (*Client) GetChannelInfo Uses

func (api *Client) GetChannelInfo(channelID string) (*Channel, error)

GetChannelInfo retrieves the given channel see https://api.slack.com/methods/channels.info

func (*Client) GetChannelInfoContext Uses

func (api *Client) GetChannelInfoContext(ctx context.Context, channelID string) (*Channel, error)

GetChannelInfoContext retrieves the given channel with a custom context see https://api.slack.com/methods/channels.info

func (*Client) GetChannelReplies Uses

func (api *Client) GetChannelReplies(channelID, thread_ts string) ([]Message, error)

GetChannelReplies gets an entire thread (a message plus all the messages in reply to it). see https://api.slack.com/methods/channels.replies

func (*Client) GetChannelRepliesContext Uses

func (api *Client) GetChannelRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error)

GetChannelRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context see https://api.slack.com/methods/channels.replies

func (*Client) GetChannels Uses

func (api *Client) GetChannels(excludeArchived bool, options ...GetChannelsOption) ([]Channel, error)

GetChannels retrieves all the channels see https://api.slack.com/methods/channels.list

func (*Client) GetChannelsContext Uses

func (api *Client) GetChannelsContext(ctx context.Context, excludeArchived bool, options ...GetChannelsOption) ([]Channel, error)

GetChannelsContext retrieves all the channels with a custom context see https://api.slack.com/methods/channels.list

func (*Client) GetConversationHistory Uses

func (api *Client) GetConversationHistory(params *GetConversationHistoryParameters) (*GetConversationHistoryResponse, error)

GetConversationHistory joins an existing conversation

func (*Client) GetConversationHistoryContext Uses

func (api *Client) GetConversationHistoryContext(ctx context.Context, params *GetConversationHistoryParameters) (*GetConversationHistoryResponse, error)

GetConversationHistoryContext joins an existing conversation with a custom context

func (*Client) GetConversationInfo Uses

func (api *Client) GetConversationInfo(channelID string, includeLocale bool) (*Channel, error)

GetConversationInfo retrieves information about a conversation

func (*Client) GetConversationInfoContext Uses

func (api *Client) GetConversationInfoContext(ctx context.Context, channelID string, includeLocale bool) (*Channel, error)

GetConversationInfoContext retrieves information about a conversation with a custom context

func (*Client) GetConversationReplies Uses

func (api *Client) GetConversationReplies(params *GetConversationRepliesParameters) (msgs []Message, hasMore bool, nextCursor string, err error)

GetConversationReplies retrieves a thread of messages posted to a conversation

func (*Client) GetConversationRepliesContext Uses

func (api *Client) GetConversationRepliesContext(ctx context.Context, params *GetConversationRepliesParameters) (msgs []Message, hasMore bool, nextCursor string, err error)

GetConversationRepliesContext retrieves a thread of messages posted to a conversation with a custom context

func (*Client) GetConversations Uses

func (api *Client) GetConversations(params *GetConversationsParameters) (channels []Channel, nextCursor string, err error)

GetConversations returns the list of channels in a Slack team

func (*Client) GetConversationsContext Uses

func (api *Client) GetConversationsContext(ctx context.Context, params *GetConversationsParameters) (channels []Channel, nextCursor string, err error)

GetConversationsContext returns the list of channels in a Slack team with a custom context

func (*Client) GetConversationsForUser Uses

func (api *Client) GetConversationsForUser(params *GetConversationsForUserParameters) (channels []Channel, nextCursor string, err error)

GetConversationsForUser returns the list conversations for a given user

func (*Client) GetConversationsForUserContext Uses

func (api *Client) GetConversationsForUserContext(ctx context.Context, params *GetConversationsForUserParameters) (channels []Channel, nextCursor string, err error)

GetConversationsForUserContext returns the list conversations for a given user with a custom context

func (*Client) GetDNDInfo Uses

func (api *Client) GetDNDInfo(user *string) (*DNDStatus, error)

GetDNDInfo provides information about a user's current Do Not Disturb settings.

func (*Client) GetDNDInfoContext Uses

func (api *Client) GetDNDInfoContext(ctx context.Context, user *string) (*DNDStatus, error)

GetDNDInfoContext provides information about a user's current Do Not Disturb settings with a custom context.

func (*Client) GetDNDTeamInfo Uses

func (api *Client) GetDNDTeamInfo(users []string) (map[string]DNDStatus, error)

GetDNDTeamInfo provides information about a user's current Do Not Disturb settings.

func (*Client) GetDNDTeamInfoContext Uses

func (api *Client) GetDNDTeamInfoContext(ctx context.Context, users []string) (map[string]DNDStatus, error)

GetDNDTeamInfoContext provides information about a user's current Do Not Disturb settings with a custom context.

func (*Client) GetEmoji Uses

func (api *Client) GetEmoji() (map[string]string, error)

GetEmoji retrieves all the emojis

func (*Client) GetEmojiContext Uses

func (api *Client) GetEmojiContext(ctx context.Context) (map[string]string, error)

GetEmojiContext retrieves all the emojis with a custom context

func (*Client) GetFile Uses

func (api *Client) GetFile(downloadURL string, writer io.Writer) error

GetFile retreives a given file from its private download URL

func (*Client) GetFileInfo Uses

func (api *Client) GetFileInfo(fileID string, count, page int) (*File, []Comment, *Paging, error)

GetFileInfo retrieves a file and related comments

func (*Client) GetFileInfoContext Uses

func (api *Client) GetFileInfoContext(ctx context.Context, fileID string, count, page int) (*File, []Comment, *Paging, error)

GetFileInfoContext retrieves a file and related comments with a custom context

func (*Client) GetFiles Uses

func (api *Client) GetFiles(params GetFilesParameters) ([]File, *Paging, error)

GetFiles retrieves all files according to the parameters given

func (*Client) GetFilesContext Uses

func (api *Client) GetFilesContext(ctx context.Context, params GetFilesParameters) ([]File, *Paging, error)

GetFilesContext retrieves all files according to the parameters given with a custom context

func (*Client) GetGroupHistory Uses

func (api *Client) GetGroupHistory(group string, params HistoryParameters) (*History, error)

GetGroupHistory fetches all the history for a private group

func (*Client) GetGroupHistoryContext Uses

func (api *Client) GetGroupHistoryContext(ctx context.Context, group string, params HistoryParameters) (*History, error)

GetGroupHistoryContext fetches all the history for a private group with a custom context

func (*Client) GetGroupInfo Uses

func (api *Client) GetGroupInfo(group string) (*Group, error)

GetGroupInfo retrieves the given group

func (*Client) GetGroupInfoContext Uses

func (api *Client) GetGroupInfoContext(ctx context.Context, group string) (*Group, error)

GetGroupInfoContext retrieves the given group with a custom context

func (*Client) GetGroups Uses

func (api *Client) GetGroups(excludeArchived bool) ([]Group, error)

GetGroups retrieves all groups

func (*Client) GetGroupsContext Uses

func (api *Client) GetGroupsContext(ctx context.Context, excludeArchived bool) ([]Group, error)

GetGroupsContext retrieves all groups with a custom context

func (*Client) GetIMChannels Uses

func (api *Client) GetIMChannels() ([]IM, error)

GetIMChannels returns the list of direct message channels

func (*Client) GetIMChannelsContext Uses

func (api *Client) GetIMChannelsContext(ctx context.Context) ([]IM, error)

GetIMChannelsContext returns the list of direct message channels with a custom context

func (*Client) GetIMHistory Uses

func (api *Client) GetIMHistory(channel string, params HistoryParameters) (*History, error)

GetIMHistory retrieves the direct message channel history

func (*Client) GetIMHistoryContext Uses

func (api *Client) GetIMHistoryContext(ctx context.Context, channel string, params HistoryParameters) (*History, error)

GetIMHistoryContext retrieves the direct message channel history with a custom context

func (api *Client) GetPermalink(params *PermalinkParameters) (string, error)

GetPermalink returns the permalink for a message. It takes PermalinkParameters and returns a string containing the permalink. It returns an error if unable to retrieve the permalink.

func (*Client) GetPermalinkContext Uses

func (api *Client) GetPermalinkContext(ctx context.Context, params *PermalinkParameters) (string, error)

GetPermalinkContext returns the permalink for a message using a custom context.

func (*Client) GetReactions Uses

func (api *Client) GetReactions(item ItemRef, params GetReactionsParameters) ([]ItemReaction, error)

GetReactions returns details about the reactions on an item.

func (*Client) GetReactionsContext Uses

func (api *Client) GetReactionsContext(ctx context.Context, item ItemRef, params GetReactionsParameters) ([]ItemReaction, error)

GetReactionsContext returns details about the reactions on an item with a custom context

func (*Client) GetStarred Uses

func (api *Client) 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":
         ...

}

This function still exists to maintain backwards compatibility. I exposed it as returning []StarredItem, so it shall stay as StarredItem

func (*Client) GetStarredContext Uses

func (api *Client) GetStarredContext(ctx context.Context, params StarsParameters) ([]StarredItem, *Paging, error)

GetStarredContext returns a list of StarredItem items with a custom context

For more details see GetStarred

func (*Client) GetTeamInfo Uses

func (api *Client) GetTeamInfo() (*TeamInfo, error)

GetTeamInfo gets the Team Information of the user

func (*Client) GetTeamInfoContext Uses

func (api *Client) GetTeamInfoContext(ctx context.Context) (*TeamInfo, error)

GetTeamInfoContext gets the Team Information of the user with a custom context

func (*Client) GetUserByEmail Uses

func (api *Client) GetUserByEmail(email string) (*User, error)

GetUserByEmail will retrieve the complete user information by email

func (*Client) GetUserByEmailContext Uses

func (api *Client) GetUserByEmailContext(ctx context.Context, email string) (*User, error)

GetUserByEmailContext will retrieve the complete user information by email with a custom context

func (*Client) GetUserGroupMembers Uses

func (api *Client) GetUserGroupMembers(userGroup string) ([]string, error)

GetUserGroupMembers will retrieve the current list of users in a group

func (*Client) GetUserGroupMembersContext Uses

func (api *Client) GetUserGroupMembersContext(ctx context.Context, userGroup string) ([]string, error)

GetUserGroupMembersContext will retrieve the current list of users in a group with a custom context

func (*Client) GetUserGroups Uses

func (api *Client) GetUserGroups(options ...GetUserGroupsOption) ([]UserGroup, error)

GetUserGroups returns a list of user groups for the team

func (*Client) GetUserGroupsContext Uses

func (api *Client) GetUserGroupsContext(ctx context.Context, options ...GetUserGroupsOption) ([]UserGroup, error)

GetUserGroupsContext returns a list of user groups for the team with a custom context

func (*Client) GetUserIdentity Uses

func (api *Client) GetUserIdentity() (*UserIdentityResponse, error)

GetUserIdentity will retrieve user info available per identity scopes

func (*Client) GetUserIdentityContext Uses

func (api *Client) GetUserIdentityContext(ctx context.Context) (response *UserIdentityResponse, err error)

GetUserIdentityContext will retrieve user info available per identity scopes with a custom context

func (*Client) GetUserInfo Uses

func (api *Client) GetUserInfo(user string) (*User, error)

GetUserInfo will retrieve the complete user information

func (*Client) GetUserInfoContext Uses

func (api *Client) GetUserInfoContext(ctx context.Context, user string) (*User, error)

GetUserInfoContext will retrieve the complete user information with a custom context

func (*Client) GetUserPresence Uses

func (api *Client) GetUserPresence(user string) (*UserPresence, error)

GetUserPresence will retrieve the current presence status of given user.

func (*Client) GetUserPresenceContext Uses

func (api *Client) GetUserPresenceContext(ctx context.Context, user string) (*UserPresence, error)

GetUserPresenceContext will retrieve the current presence status of given user with a custom context.

func (*Client) GetUserProfile Uses

func (api *Client) GetUserProfile(userID string, includeLabels bool) (*UserProfile, error)

GetUserProfile retrieves a user's profile information.

func (*Client) GetUserProfileContext Uses

func (api *Client) GetUserProfileContext(ctx context.Context, userID string, includeLabels bool) (*UserProfile, error)

GetUserProfileContext retrieves a user's profile information with a context.

func (*Client) GetUsers Uses

func (api *Client) GetUsers() ([]User, error)

GetUsers returns the list of users (with their detailed information)

func (*Client) GetUsersContext Uses

func (api *Client) GetUsersContext(ctx context.Context) (results []User, err error)

GetUsersContext returns the list of users (with their detailed information) with a custom context

func (*Client) GetUsersInConversation Uses

func (api *Client) GetUsersInConversation(params *GetUsersInConversationParameters) ([]string, string, error)

GetUsersInConversation returns the list of users in a conversation

func (*Client) GetUsersInConversationContext Uses

func (api *Client) GetUsersInConversationContext(ctx context.Context, params *GetUsersInConversationParameters) ([]string, string, error)

GetUsersInConversationContext returns the list of users in a conversation with a custom context

func (*Client) GetUsersPaginated Uses

func (api *Client) GetUsersPaginated(options ...GetUsersOption) UserPagination

GetUsersPaginated fetches users in a paginated fashion, see GetUsersContext for usage.

func (*Client) InviteGuest Uses

func (api *Client) InviteGuest(teamName, channel, firstName, lastName, emailAddress string) error

InviteGuest invites a user to Slack as a single-channel guest

func (*Client) InviteGuestContext Uses

func (api *Client) InviteGuestContext(ctx context.Context, teamName, channel, firstName, lastName, emailAddress string) error

InviteGuestContext invites a user to Slack as a single-channel guest with a custom context

func (*Client) InviteRestricted Uses

func (api *Client) InviteRestricted(teamName, channel, firstName, lastName, emailAddress string) error

InviteRestricted invites a user to Slack as a restricted account

func (*Client) InviteRestrictedContext Uses

func (api *Client) InviteRestrictedContext(ctx context.Context, teamName, channel, firstName, lastName, emailAddress string) error

InviteRestrictedContext invites a user to Slack as a restricted account with a custom context

func (*Client) InviteToTeam Uses

func (api *Client) InviteToTeam(teamName, firstName, lastName, emailAddress string) error

InviteToTeam invites a user to a Slack team

func (*Client) InviteToTeamContext Uses

func (api *Client) InviteToTeamContext(ctx context.Context, teamName, firstName, lastName, emailAddress string) error

InviteToTeamContext invites a user to a Slack team with a custom context

func (*Client) InviteUserToChannel Uses

func (api *Client) InviteUserToChannel(channelID, user string) (*Channel, error)

InviteUserToChannel invites a user to a given channel and returns a *Channel see https://api.slack.com/methods/channels.invite

func (*Client) InviteUserToChannelContext Uses

func (api *Client) InviteUserToChannelContext(ctx context.Context, channelID, user string) (*Channel, error)

InviteUserToChannelContext invites a user to a given channel and returns a *Channel with a custom context see https://api.slack.com/methods/channels.invite

func (*Client) InviteUserToGroup Uses

func (api *Client) InviteUserToGroup(group, user string) (*Group, bool, error)

InviteUserToGroup invites a specific user to a private group

func (*Client) InviteUserToGroupContext Uses

func (api *Client) InviteUserToGroupContext(ctx context.Context, group, user string) (*Group, bool, error)

InviteUserToGroupContext invites a specific user to a private group with a custom context

func (*Client) InviteUsersToConversation Uses

func (api *Client) InviteUsersToConversation(channelID string, users ...string) (*Channel, error)

InviteUsersToConversation invites users to a channel

func (*Client) InviteUsersToConversationContext Uses

func (api *Client) InviteUsersToConversationContext(ctx context.Context, channelID string, users ...string) (*Channel, error)

InviteUsersToConversationContext invites users to a channel with a custom context

func (*Client) JoinChannel Uses

func (api *Client) JoinChannel(channelName string) (*Channel, error)

JoinChannel joins the currently authenticated user to a channel see https://api.slack.com/methods/channels.join

func (*Client) JoinChannelContext Uses

func (api *Client) JoinChannelContext(ctx context.Context, channelName string) (*Channel, error)

JoinChannelContext joins the currently authenticated user to a channel with a custom context see https://api.slack.com/methods/channels.join

func (*Client) JoinConversation Uses

func (api *Client) JoinConversation(channelID string) (*Channel, string, []string, error)

JoinConversation joins an existing conversation

func (*Client) JoinConversationContext Uses

func (api *Client) JoinConversationContext(ctx context.Context, channelID string) (*Channel, string, []string, error)

JoinConversationContext joins an existing conversation with a custom context

func (*Client) KickUserFromChannel Uses

func (api *Client) KickUserFromChannel(channelID, user string) error

KickUserFromChannel kicks a user from a given channel see https://api.slack.com/methods/channels.kick

func (*Client) KickUserFromChannelContext Uses

func (api *Client) KickUserFromChannelContext(ctx context.Context, channelID, user string) (err error)

KickUserFromChannelContext kicks a user from a given channel with a custom context see https://api.slack.com/methods/channels.kick

func (*Client) KickUserFromConversation Uses

func (api *Client) KickUserFromConversation(channelID string, user string) error

KickUserFromConversation removes a user from a conversation

func (*Client) KickUserFromConversationContext Uses

func (api *Client) KickUserFromConversationContext(ctx context.Context, channelID string, user string) error

KickUserFromConversationContext removes a user from a conversation with a custom context

func (*Client) KickUserFromGroup Uses

func (api *Client) KickUserFromGroup(group, user string) error

KickUserFromGroup kicks a user from a group

func (*Client) KickUserFromGroupContext Uses

func (api *Client) KickUserFromGroupContext(ctx context.Context, group, user string) (err error)

KickUserFromGroupContext kicks a user from a group with a custom context

func (*Client) LeaveChannel Uses

func (api *Client) LeaveChannel(channelID string) (bool, error)

LeaveChannel makes the authenticated user leave the given channel see https://api.slack.com/methods/channels.leave

func (*Client) LeaveChannelContext Uses

func (api *Client) LeaveChannelContext(ctx context.Context, channelID string) (bool, error)

LeaveChannelContext makes the authenticated user leave the given channel with a custom context see https://api.slack.com/methods/channels.leave

func (*Client) LeaveConversation Uses

func (api *Client) LeaveConversation(channelID string) (bool, error)

LeaveConversation leaves a conversation

func (*Client) LeaveConversationContext Uses

func (api *Client) LeaveConversationContext(ctx context.Context, channelID string) (bool, error)

LeaveConversationContext leaves a conversation with a custom context

func (*Client) LeaveGroup Uses

func (api *Client) LeaveGroup(group string) error

LeaveGroup makes authenticated user leave the group

func (*Client) LeaveGroupContext Uses

func (api *Client) LeaveGroupContext(ctx context.Context, group string) (err error)

LeaveGroupContext makes authenticated user leave the group with a custom context

func (*Client) ListAllStars Uses

func (api *Client) ListAllStars() ([]Item, error)

ListAllStars returns the complete list of starred items

func (*Client) ListAllStarsContext Uses

func (api *Client) ListAllStarsContext(ctx context.Context) (results []Item, err error)

ListAllStarsContext returns the list of users (with their detailed information) with a custom context

func (*Client) ListFiles Uses

func (api *Client) ListFiles(params ListFilesParameters) ([]File, *ListFilesParameters, error)

ListFiles retrieves all files according to the parameters given. Uses cursor based pagination.

func (*Client) ListFilesContext Uses

func (api *Client) ListFilesContext(ctx context.Context, params ListFilesParameters) ([]File, *ListFilesParameters, error)

ListFilesContext retrieves all files according to the parameters given with a custom context. Uses cursor based pagination.

func (*Client) ListPins Uses

func (api *Client) ListPins(channel string) ([]Item, *Paging, error)

ListPins returns information about the items a user reacted to.

func (*Client) ListPinsContext Uses

func (api *Client) ListPinsContext(ctx context.Context, channel string) ([]Item, *Paging, error)

ListPinsContext returns information about the items a user reacted to with a custom context.

func (*Client) ListReactions Uses

func (api *Client) ListReactions(params ListReactionsParameters) ([]ReactedItem, *Paging, error)

ListReactions returns information about the items a user reacted to.

func (*Client) ListReactionsContext Uses

func (api *Client) ListReactionsContext(ctx context.Context, params ListReactionsParameters) ([]ReactedItem, *Paging, error)

ListReactionsContext returns information about the items a user reacted to with a custom context.

func (*Client) ListStars Uses

func (api *Client) ListStars(params StarsParameters) ([]Item, *Paging, error)

ListStars returns information about the stars a user added

func (*Client) ListStarsContext Uses

func (api *Client) ListStarsContext(ctx context.Context, params StarsParameters) ([]Item, *Paging, error)

ListStarsContext returns information about the stars a user added with a custom context

func (*Client) ListStarsPaginated Uses

func (api *Client) ListStarsPaginated(options ...ListStarsOption) StarredItemPagination

ListStarsPaginated fetches users in a paginated fashion, see ListStarsPaginationContext for usage.

func (*Client) MarkIMChannel Uses

func (api *Client) MarkIMChannel(channel, ts string) (err error)

MarkIMChannel sets the read mark of a direct message channel to a specific point

func (*Client) MarkIMChannelContext Uses

func (api *Client) MarkIMChannelContext(ctx context.Context, channel, ts string) error

MarkIMChannelContext sets the read mark of a direct message channel to a specific point with a custom context

func (*Client) NewRTM Uses

func (api *Client) NewRTM(options ...RTMOption) *RTM

NewRTM returns a RTM, which provides a fully managed connection to Slack's websocket-based Real-Time Messaging protocol.

func (*Client) OpenConversation Uses

func (api *Client) OpenConversation(params *OpenConversationParameters) (*Channel, bool, bool, error)

OpenConversation opens or resumes a direct message or multi-person direct message

func (*Client) OpenConversationContext Uses

func (api *Client) OpenConversationContext(ctx context.Context, params *OpenConversationParameters) (*Channel, bool, bool, error)

OpenConversationContext opens or resumes a direct message or multi-person direct message with a custom context

func (*Client) OpenDialog Uses

func (api *Client) OpenDialog(triggerID string, dialog Dialog) (err error)

OpenDialog opens a dialog window where the triggerID originated from. EXPERIMENTAL: dialog functionality is currently experimental, api is not considered stable.

func (*Client) OpenDialogContext Uses

func (api *Client) OpenDialogContext(ctx context.Context, triggerID string, dialog Dialog) (err error)

OpenDialogContext opens a dialog window where the triggerId originated from with a custom context EXPERIMENTAL: dialog functionality is currently experimental, api is not considered stable.

func (*Client) OpenGroup Uses

func (api *Client) OpenGroup(group string) (bool, bool, error)

OpenGroup opens a private group

func (*Client) OpenGroupContext Uses

func (api *Client) OpenGroupContext(ctx context.Context, group string) (bool, bool, error)

OpenGroupContext opens a private group with a custom context

func (*Client) OpenIMChannel Uses

func (api *Client) OpenIMChannel(user string) (bool, bool, string, error)

OpenIMChannel opens a direct message channel to the user provided as argument Returns some status and the channel ID

func (*Client) OpenIMChannelContext Uses

func (api *Client) OpenIMChannelContext(ctx context.Context, user string) (bool, bool, string, error)

OpenIMChannelContext opens a direct message channel to the user provided as argument with a custom context Returns some status and the channel ID

func (*Client) PostEphemeral Uses

func (api *Client) PostEphemeral(channelID, userID string, options ...MsgOption) (string, error)

PostEphemeral sends an ephemeral message to a user in a channel. Message is escaped by default according to https://api.slack.com/docs/formatting Use http://davestevens.github.io/slack-message-builder/ to help crafting your message.

func (*Client) PostEphemeralContext Uses

func (api *Client) PostEphemeralContext(ctx context.Context, channelID, userID string, options ...MsgOption) (timestamp string, err error)

PostEphemeralContext sends an ephemeal message to a user in a channel with a custom context For more details, see PostEphemeral documentation

func (*Client) PostMessage Uses

func (api *Client) PostMessage(channelID string, options ...MsgOption) (string, string, error)

PostMessage sends a message to a channel. Message is escaped by default according to https://api.slack.com/docs/formatting Use http://davestevens.github.io/slack-message-builder/ to help crafting your message.

func (*Client) PostMessageContext Uses

func (api *Client) PostMessageContext(ctx context.Context, channelID string, options ...MsgOption) (string, string, error)

PostMessageContext sends a message to a channel with a custom context For more details, see PostMessage documentation.

func (*Client) RemovePin Uses

func (api *Client) RemovePin(channel string, item ItemRef) error

RemovePin un-pins an item from a channel

func (*Client) RemovePinContext Uses

func (api *Client) RemovePinContext(ctx context.Context, channel string, item ItemRef) error

RemovePinContext un-pins an item from a channel with a custom context

func (*Client) RemoveReaction Uses

func (api *Client) RemoveReaction(name string, item ItemRef) error

RemoveReaction removes a reaction emoji from a message, file or file comment.

func (*Client) RemoveReactionContext Uses

func (api *Client) RemoveReactionContext(ctx context.Context, name string, item ItemRef) error

RemoveReactionContext removes a reaction emoji from a message, file or file comment with a custom context.

func (*Client) RemoveStar Uses

func (api *Client) RemoveStar(channel string, item ItemRef) error

RemoveStar removes a starred item from a channel

func (*Client) RemoveStarContext Uses

func (api *Client) RemoveStarContext(ctx context.Context, channel string, item ItemRef) error

RemoveStarContext removes a starred item from a channel with a custom context

func (*Client) RenameChannel Uses

func (api *Client) RenameChannel(channelID, name string) (*Channel, error)

RenameChannel renames a given channel see https://api.slack.com/methods/channels.rename

func (*Client) RenameChannelContext Uses

func (api *Client) RenameChannelContext(ctx context.Context, channelID, name string) (*Channel, error)

RenameChannelContext renames a given channel with a custom context see https://api.slack.com/methods/channels.rename

func (*Client) RenameConversation Uses

func (api *Client) RenameConversation(channelID, channelName string) (*Channel, error)

RenameConversation renames a conversation

func (*Client) RenameConversationContext Uses

func (api *Client) RenameConversationContext(ctx context.Context, channelID, channelName string) (*Channel, error)

RenameConversationContext renames a conversation with a custom context

func (*Client) RenameGroup Uses

func (api *Client) RenameGroup(group, name string) (*Channel, error)

RenameGroup renames a group XXX: They return a channel, not a group. What is this crap? :( Inconsistent api it seems.

func (*Client) RenameGroupContext Uses

func (api *Client) RenameGroupContext(ctx context.Context, group, name string) (*Channel, error)

RenameGroupContext renames a group with a custom context

func (*Client) RevokeFilePublicURL Uses

func (api *Client) RevokeFilePublicURL(fileID string) (*File, error)

RevokeFilePublicURL disables public/external sharing for a file

func (*Client) RevokeFilePublicURLContext Uses

func (api *Client) RevokeFilePublicURLContext(ctx context.Context, fileID string) (*File, error)

RevokeFilePublicURLContext disables public/external sharing for a file with a custom context

func (*Client) Search Uses

func (api *Client) Search(query string, params SearchParameters) (*SearchMessages, *SearchFiles, error)

func (*Client) SearchContext Uses

func (api *Client) SearchContext(ctx context.Context, query string, params SearchParameters) (*SearchMessages, *SearchFiles, error)

func (*Client) SearchFiles Uses

func (api *Client) SearchFiles(query string, params SearchParameters) (*SearchFiles, error)

func (*Client) SearchFilesContext Uses

func (api *Client) SearchFilesContext(ctx context.Context, query string, params SearchParameters) (*SearchFiles, error)

func (*Client) SearchMessages Uses

func (api *Client) SearchMessages(query string, params SearchParameters) (*SearchMessages, error)

func (*Client) SearchMessagesContext Uses

func (api *Client) SearchMessagesContext(ctx context.Context, query string, params SearchParameters) (*SearchMessages, error)

func (*Client) SendAuthRevoke Uses

func (api *Client) SendAuthRevoke(token string) (*AuthRevokeResponse, error)

SendAuthRevoke will send a revocation for our token

func (*Client) SendAuthRevokeContext Uses

func (api *Client) SendAuthRevokeContext(ctx context.Context, token string) (*AuthRevokeResponse, error)

SendAuthRevokeContext will retrieve the satus from api.test

func (*Client) SendMessage Uses

func (api *Client) SendMessage(channel string, options ...MsgOption) (string, string, string, error)

SendMessage more flexible method for configuring messages.

func (*Client) SendMessageContext Uses

func (api *Client) SendMessageContext(ctx context.Context, channelID string, options ...MsgOption) (_channel string, _timestamp string, _text string, err error)

SendMessageContext more flexible method for configuring messages with a custom context.

func (*Client) SendSSOBindingEmail Uses

func (api *Client) SendSSOBindingEmail(teamName, user string) error

SendSSOBindingEmail sends an SSO binding email to the specified user

func (*Client) SendSSOBindingEmailContext Uses

func (api *Client) SendSSOBindingEmailContext(ctx context.Context, teamName, user string) error

SendSSOBindingEmailContext sends an SSO binding email to the specified user with a custom context

func (*Client) SetChannelPurpose Uses

func (api *Client) SetChannelPurpose(channelID, purpose string) (string, error)

SetChannelPurpose sets the channel purpose and returns the purpose that was successfully set see https://api.slack.com/methods/channels.setPurpose

func (*Client) SetChannelPurposeContext Uses

func (api *Client) SetChannelPurposeContext(ctx context.Context, channelID, purpose string) (string, error)

SetChannelPurposeContext sets the channel purpose and returns the purpose that was successfully set with a custom context see https://api.slack.com/methods/channels.setPurpose

func (*Client) SetChannelReadMark Uses

func (api *Client) SetChannelReadMark(channelID, ts string) error

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. see https://api.slack.com/methods/channels.mark

func (*Client) SetChannelReadMarkContext Uses

func (api *Client) SetChannelReadMarkContext(ctx context.Context, channelID, ts string) (err error)

SetChannelReadMarkContext sets the read mark of a given channel to a specific point with a custom context For more details see SetChannelReadMark documentation see https://api.slack.com/methods/channels.mark

func (*Client) SetChannelTopic Uses

func (api *Client) SetChannelTopic(channelID, topic string) (string, error)

SetChannelTopic sets the channel topic and returns the topic that was successfully set see https://api.slack.com/methods/channels.setTopic

func (*Client) SetChannelTopicContext Uses

func (api *Client) SetChannelTopicContext(ctx context.Context, channelID, topic string) (string, error)

SetChannelTopicContext sets the channel topic and returns the topic that was successfully set with a custom context see https://api.slack.com/methods/channels.setTopic

func (*Client) SetGroupPurpose Uses

func (api *Client) SetGroupPurpose(group, purpose string) (string, error)

SetGroupPurpose sets the group purpose

func (*Client) SetGroupPurposeContext Uses

func (api *Client) SetGroupPurposeContext(ctx context.Context, group, purpose string) (string, error)

SetGroupPurposeContext sets the group purpose with a custom context

func (*Client) SetGroupReadMark Uses

func (api *Client) SetGroupReadMark(group, ts string) error

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 (*Client) SetGroupReadMarkContext Uses

func (api *Client) SetGroupReadMarkContext(ctx context.Context, group, ts string) (err error)

SetGroupReadMarkContext sets the read mark on a private group with a custom context For more details see SetGroupReadMark

func (*Client) SetGroupTopic Uses

func (api *Client) SetGroupTopic(group, topic string) (string, error)

SetGroupTopic sets the group topic

func (*Client) SetGroupTopicContext Uses

func (api *Client) SetGroupTopicContext(ctx context.Context, group, topic string) (string, error)

SetGroupTopicContext sets the group topic with a custom context

func (*Client) SetPurposeOfConversation Uses

func (api *Client) SetPurposeOfConversation(channelID, purpose string) (*Channel, error)

SetPurposeOfConversation sets the purpose for a conversation

func (*Client) SetPurposeOfConversationContext Uses

func (api *Client) SetPurposeOfConversationContext(ctx context.Context, channelID, purpose string) (*Channel, error)

SetPurposeOfConversationContext sets the purpose for a conversation with a custom context

func (*Client) SetRegular Uses

func (api *Client) SetRegular(teamName, user string) error

SetRegular enables the specified user

func (*Client) SetRegularContext Uses

func (api *Client) SetRegularContext(ctx context.Context, teamName, user string) error

SetRegularContext enables the specified user with a custom context

func (*Client) SetRestricted Uses

func (api *Client) SetRestricted(teamName, uid string, channelIds ...string) error

SetRestricted converts a user into a restricted account

func (*Client) SetRestrictedContext Uses

func (api *Client) SetRestrictedContext(ctx context.Context, teamName, uid string, channelIds ...string) error

SetRestrictedContext converts a user into a restricted account with a custom context

func (*Client) SetSnooze Uses

func (api *Client) SetSnooze(minutes int) (*DNDStatus, error)

SetSnooze adjusts the snooze duration for a user's Do Not Disturb settings. If a snooze session is not already active for the user, invoking this method will begin one for the specified duration.

func (*Client) SetSnoozeContext Uses

func (api *Client) SetSnoozeContext(ctx context.Context, minutes int) (*DNDStatus, error)

SetSnoozeContext adjusts the snooze duration for a user's Do Not Disturb settings with a custom context. For more information see the SetSnooze docs

func (*Client) SetTopicOfConversation Uses

func (api *Client) SetTopicOfConversation(channelID, topic string) (*Channel, error)

SetTopicOfConversation sets the topic for a conversation

func (*Client) SetTopicOfConversationContext Uses

func (api *Client) SetTopicOfConversationContext(ctx context.Context, channelID, topic string) (*Channel, error)

SetTopicOfConversationContext sets the topic for a conversation with a custom context

func (*Client) SetUltraRestricted Uses

func (api *Client) SetUltraRestricted(teamName, uid, channel string) error

SetUltraRestricted converts a user into a single-channel guest

func (*Client) SetUltraRestrictedContext Uses

func (api *Client) SetUltraRestrictedContext(ctx context.Context, teamName, uid, channel string) error

SetUltraRestrictedContext converts a user into a single-channel guest with a custom context

func (*Client) SetUserAsActive Uses

func (api *Client) SetUserAsActive() error

SetUserAsActive marks the currently authenticated user as active

func (*Client) SetUserAsActiveContext Uses

func (api *Client) SetUserAsActiveContext(ctx context.Context) (err error)

SetUserAsActiveContext marks the currently authenticated user as active with a custom context

func (*Client) SetUserCustomStatus Uses

func (api *Client) SetUserCustomStatus(statusText, statusEmoji string, statusExpiration int64) error

SetUserCustomStatus will set a custom status and emoji for the currently authenticated user. If statusEmoji is "" and statusText is not, the Slack API will automatically set it to ":speech_balloon:". Otherwise, if both are "" the Slack API will unset the custom status/emoji. If statusExpiration is set to 0 the status will not expire.

func (*Client) SetUserCustomStatusContext Uses

func (api *Client) SetUserCustomStatusContext(ctx context.Context, statusText, statusEmoji string, statusExpiration int64) error

SetUserCustomStatusContext will set a custom status and emoji for the currently authenticated user with a custom context

For more information see SetUserCustomStatus

func (*Client) SetUserCustomStatusContextWithUser Uses

func (api *Client) SetUserCustomStatusContextWithUser(ctx context.Context, user, statusText, statusEmoji string, statusExpiration int64) error

SetUserCustomStatusContextWithUser will set a custom status and emoji for the provided user with a custom context

For more information see SetUserCustomStatus

func (*Client) SetUserCustomStatusWithUser Uses

func (api *Client) SetUserCustomStatusWithUser(user, statusText, statusEmoji string, statusExpiration int64) error

SetUserCustomStatusWithUser will set a custom status and emoji for the provided user.

For more information see SetUserCustomStatus

func (*Client) SetUserPhoto Uses

func (api *Client) SetUserPhoto(image string, params UserSetPhotoParams) error

SetUserPhoto changes the currently authenticated user's profile image

func (*Client) SetUserPhotoContext Uses

func (api *Client) SetUserPhotoContext(ctx context.Context, image string, params UserSetPhotoParams) (err error)

SetUserPhotoContext changes the currently authenticated user's profile image using a custom context

func (*Client) SetUserPresence Uses

func (api *Client) SetUserPresence(presence string) error

SetUserPresence changes the currently authenticated user presence

func (*Client) SetUserPresenceContext Uses

func (api *Client) SetUserPresenceContext(ctx context.Context, presence string) error

SetUserPresenceContext changes the currently authenticated user presence with a custom context

func (*Client) ShareFilePublicURL Uses

func (api *Client) ShareFilePublicURL(fileID string) (*File, []Comment, *Paging, error)

ShareFilePublicURL enabled public/external sharing for a file

func (*Client) ShareFilePublicURLContext Uses

func (api *Client) ShareFilePublicURLContext(ctx context.Context, fileID string) (*File, []Comment, *Paging, error)

ShareFilePublicURLContext enabled public/external sharing for a file with a custom context

func (*Client) StartRTM Uses

func (api *Client) StartRTM() (info *Info, websocketURL string, err error)

StartRTM calls the "rtm.start" endpoint and returns the provided URL and the full Info block.

To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()` on it.

func (*Client) StartRTMContext Uses

func (api *Client) StartRTMContext(ctx context.Context) (info *Info, websocketURL string, err error)

StartRTMContext calls the "rtm.start" endpoint and returns the provided URL and the full Info block with a custom context.

To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()` on it.

func (*Client) UnArchiveConversation Uses

func (api *Client) UnArchiveConversation(channelID string) error

UnArchiveConversation reverses conversation archival

func (*Client) UnArchiveConversationContext Uses

func (api *Client) UnArchiveConversationContext(ctx context.Context, channelID string) error

UnArchiveConversationContext reverses conversation archival with a custom context

func (*Client) UnarchiveChannel Uses

func (api *Client) UnarchiveChannel(channelID string) error

UnarchiveChannel unarchives the given channel see https://api.slack.com/methods/channels.unarchive

func (*Client) UnarchiveChannelContext Uses

func (api *Client) UnarchiveChannelContext(ctx context.Context, channelID string) (err error)

UnarchiveChannelContext unarchives the given channel with a custom context see https://api.slack.com/methods/channels.unarchive

func (*Client) UnarchiveGroup Uses

func (api *Client) UnarchiveGroup(group string) error

UnarchiveGroup unarchives a private group

func (*Client) UnarchiveGroupContext Uses

func (api *Client) UnarchiveGroupContext(ctx context.Context, group string) error

UnarchiveGroupContext unarchives a private group

func (*Client) UnfurlMessage Uses

func (api *Client) UnfurlMessage(channelID, timestamp string, unfurls map[string]Attachment, options ...MsgOption) (string, string, string, error)

UnfurlMessage unfurls a message in a channel

func (*Client) UnsetUserCustomStatus Uses

func (api *Client) UnsetUserCustomStatus() error

UnsetUserCustomStatus removes the custom status message for the currently authenticated user. This is a convenience method that wraps (*Client).SetUserCustomStatus().

func (*Client) UnsetUserCustomStatusContext Uses

func (api *Client) UnsetUserCustomStatusContext(ctx context.Context) error

UnsetUserCustomStatusContext removes the custom status message for the currently authenticated user with a custom context. This is a convenience method that wraps (*Client).SetUserCustomStatus().

func (*Client) UpdateMessage Uses

func (api *Client) UpdateMessage(channelID, timestamp string, options ...MsgOption) (string, string, string, error)

UpdateMessage updates a message in a channel

func (*Client) UpdateMessageContext Uses

func (api *Client) UpdateMessageContext(ctx context.Context, channelID, timestamp string, options ...MsgOption) (string, string, string, error)

UpdateMessageContext updates a message in a channel

func (*Client) UpdateUserGroup Uses

func (api *Client) UpdateUserGroup(userGroup UserGroup) (UserGroup, error)

UpdateUserGroup will update an existing user group

func (*Client) UpdateUserGroupContext Uses

func (api *Client) UpdateUserGroupContext(ctx context.Context, userGroup UserGroup) (UserGroup, error)

UpdateUserGroupContext will update an existing user group with a custom context

func (*Client) UpdateUserGroupMembers Uses

func (api *Client) UpdateUserGroupMembers(userGroup string, members string) (UserGroup, error)

UpdateUserGroupMembers will update the members of an existing user group

func (*Client) UpdateUserGroupMembersContext Uses

func (api *Client) UpdateUserGroupMembersContext(ctx context.Context, userGroup string, members string) (UserGroup, error)

UpdateUserGroupMembersContext will update the members of an existing user group with a custom context

func (*Client) UploadFile Uses

func (api *Client) UploadFile(params FileUploadParameters) (file *File, err error)

UploadFile uploads a file

func (*Client) UploadFileContext Uses

func (api *Client) UploadFileContext(ctx context.Context, params FileUploadParameters) (file *File, err error)

UploadFileContext uploads a file and setting a custom context

type CommandsChangedEvent Uses

type CommandsChangedEvent struct {
    Type           string `json:"type"`
    EventTimestamp string `json:"event_ts"`
}

CommandsChangedEvent represents the commands changed event

type Comment Uses

type Comment struct {
    ID        string   `json:"id,omitempty"`
    Created   JSONTime `json:"created,omitempty"`
    Timestamp JSONTime `json:"timestamp,omitempty"`
    User      string   `json:"user,omitempty"`
    Comment   string   `json:"comment,omitempty"`
}

Comment contains all the information relative to a comment

type ConfirmationBlockObject Uses

type ConfirmationBlockObject struct {
    Title   *TextBlockObject `json:"title"`
    Text    *TextBlockObject `json:"text"`
    Confirm *TextBlockObject `json:"confirm"`
    Deny    *TextBlockObject `json:"deny"`
}

ConfirmationBlockObject defines a dialog that provides a confirmation step to any interactive element. This dialog will ask the user to confirm their action by offering a confirm and deny buttons.

More Information: https://api.slack.com/reference/messaging/composition-objects#confirm

func NewConfirmationBlockObject Uses

func NewConfirmationBlockObject(title, text, confirm, deny *TextBlockObject) *ConfirmationBlockObject

NewConfirmationBlockObject returns an instance of a new Confirmation Block Object

type ConfirmationField Uses

type ConfirmationField struct {
    Title       string `json:"title,omitempty"`        // Optional.
    Text        string `json:"text"`                   // Required.
    OkText      string `json:"ok_text,omitempty"`      // Optional. Defaults to "Okay"
    DismissText string `json:"dismiss_text,omitempty"` // Optional. Defaults to "Cancel"
}

ConfirmationField are used to ask users to confirm actions

type ConnectedEvent Uses

type ConnectedEvent struct {
    ConnectionCount int // 1 = first time, 2 = second time
    Info            *Info
}

ConnectedEvent is used for when we connect to Slack

type ConnectingEvent Uses

type ConnectingEvent struct {
    Attempt         int // 1 = first attempt, 2 = second attempt
    ConnectionCount int
}

ConnectingEvent contains information about our connection attempt

type ConnectionErrorEvent Uses

type ConnectionErrorEvent struct {
    Attempt  int
    Backoff  time.Duration // how long we'll wait before the next attempt
    ErrorObj error
}

ConnectionErrorEvent contains information about a connection error

func (*ConnectionErrorEvent) Error Uses

func (c *ConnectionErrorEvent) Error() string

type ContextBlock Uses

type ContextBlock struct {
    Type            MessageBlockType `json:"type"`
    BlockID         string           `json:"block_id,omitempty"`
    ContextElements ContextElements  `json:"elements"`
}

ContextBlock defines data that is used to display message context, which can include both images and text.

More Information: https://api.slack.com/reference/messaging/blocks#actions

func NewContextBlock Uses

func NewContextBlock(blockID string, mixedElements ...MixedElement) *ContextBlock

NewContextBlock returns a new instance of a context block

func (ContextBlock) BlockType Uses

func (s ContextBlock) BlockType() MessageBlockType

BlockType returns the type of the block

type ContextElements Uses

type ContextElements struct {
    Elements []MixedElement
}

func (*ContextElements) MarshalJSON Uses

func (e *ContextElements) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaller interface for ContextElements so that any JSON marshalling is delegated and proper type determination can be made before marshal

func (*ContextElements) UnmarshalJSON Uses

func (e *ContextElements) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaller interface for ContextElements, so that any JSON unmarshalling is delegated and proper type determination can be made before unmarshal

type Conversation Uses

type Conversation 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"`
    IsGroup            bool     `json:"is_group"`
    IsShared           bool     `json:"is_shared"`
    IsIM               bool     `json:"is_im"`
    IsExtShared        bool     `json:"is_ext_shared"`
    IsOrgShared        bool     `json:"is_org_shared"`
    IsPendingExtShared bool     `json:"is_pending_ext_shared"`
    IsPrivate          bool     `json:"is_private"`
    IsMpIM             bool     `json:"is_mpim"`
    Unlinked           int      `json:"unlinked"`
    NameNormalized     string   `json:"name_normalized"`
    NumMembers         int      `json:"num_members"`
    Priority           float64  `json:"priority"`
    User               string   `json:"user"`
}

Conversation is the foundation for IM and BaseGroupConversation

type CtxChannel Uses

type CtxChannel struct {
    ID   string `json:"id"`
    Name string `json:"name"`
}

type CtxMessage Uses

type CtxMessage struct {
    User      string `json:"user"`
    Username  string `json:"username"`
    Text      string `json:"text"`
    Timestamp string `json:"ts"`
    Type      string `json:"type"`
}

type DNDStatus Uses

type DNDStatus struct {
    Enabled            bool `json:"dnd_enabled"`
    NextStartTimestamp int  `json:"next_dnd_start_ts"`
    NextEndTimestamp   int  `json:"next_dnd_end_ts"`
    SnoozeInfo
}

type DNDUpdatedEvent Uses

type DNDUpdatedEvent struct {
    Type   string    `json:"type"`
    User   string    `json:"user"`
    Status DNDStatus `json:"dnd_status"`
}

DNDUpdatedEvent represents the update event for Do Not Disturb

type DatePickerBlockElement Uses

type DatePickerBlockElement struct {
    Type        MessageElementType       `json:"type"`
    ActionID    string                   `json:"action_id"`
    Placeholder *TextBlockObject         `json:"placeholder,omitempty"`
    InitialDate string                   `json:"initial_date,omitempty"`
    Confirm     *ConfirmationBlockObject `json:"confirm,omitempty"`
}

DatePickerBlockElement defines an element which lets users easily select a date from a calendar style UI. Date picker elements can be used inside of section and actions blocks.

More Information: https://api.slack.com/reference/messaging/block-elements#datepicker

func NewDatePickerBlockElement Uses

func NewDatePickerBlockElement(actionID string) *DatePickerBlockElement

NewDatePickerBlockElement returns an instance of a date picker element

func (DatePickerBlockElement) ElementType Uses

func (s DatePickerBlockElement) ElementType() MessageElementType

ElementType returns the type of the Element

type Dialog Uses

type Dialog struct {
    TriggerID      string          `json:"trigger_id"`      // Required
    CallbackID     string          `json:"callback_id"`     // Required
    State          string          `json:"state,omitempty"` // Optional
    Title          string          `json:"title"`
    SubmitLabel    string          `json:"submit_label,omitempty"`
    NotifyOnCancel bool            `json:"notify_on_cancel"`
    Elements       []DialogElement `json:"elements"`
}

Dialog as in Slack dialogs https://api.slack.com/dialogs#option_element_attributes#top-level_dialog_attributes

Code:

dialog := _mocDialog()
fmt.Println(*dialog)

Output:

{trigger_xyz callback_xyz  Dialog_title Send false []}

type DialogCallback Uses

type DialogCallback InteractionCallback

DialogCallback DEPRECATED use InteractionCallback

type DialogElement Uses

type DialogElement interface{}

DialogElement abstract type for dialogs.

type DialogInput Uses

type DialogInput struct {
    Type        InputType `json:"type"`
    Label       string    `json:"label"`
    Name        string    `json:"name"`
    Placeholder string    `json:"placeholder"`
    Optional    bool      `json:"optional"`
    Hint        string    `json:"hint"`
}

DialogInput for dialogs input type text or menu

type DialogInputSelect Uses

type DialogInputSelect struct {
    DialogInput
    Value           string               `json:"value,omitempty"`            //Optional.
    DataSource      SelectDataSource     `json:"data_source,omitempty"`      //Optional. Allowed values: "users", "channels", "conversations", "external".
    SelectedOptions []DialogSelectOption `json:"selected_options,omitempty"` //Optional. May hold at most one element, for use with "external" only.
    Options         []DialogSelectOption `json:"options,omitempty"`          //One of options or option_groups is required.
    OptionGroups    []DialogOptionGroup  `json:"option_groups,omitempty"`    //Provide up to 100 options.
    MinQueryLength  int                  `json:"min_query_length,omitempty"` //Optional. minimum characters before query is sent.
    Hint            string               `json:"hint,omitempty"`             //Optional. Additional hint text.
}

DialogInputSelect dialog support for select boxes.

func NewChannelsSelect Uses

func NewChannelsSelect(name, label string) *DialogInputSelect

NewChannelsSelect returns a `Channels` select

func NewConversationsSelect Uses

func NewConversationsSelect(name, label string) *DialogInputSelect

NewConversationsSelect returns a `Conversations` select

func NewGroupedSelectDialogInput Uses

func NewGroupedSelectDialogInput(name, label string, options []DialogOptionGroup) *DialogInputSelect

NewGroupedSelectDialogInput creates grouped options select input for Dialogs.

func NewStaticSelectDialogInput Uses

func NewStaticSelectDialogInput(name, label string, options []DialogSelectOption) *DialogInputSelect

NewStaticSelectDialogInput constructor for a `static` datasource menu input

func NewUsersSelect Uses

func NewUsersSelect(name, label string) *DialogInputSelect

NewUsersSelect returns a `Users` select

type DialogInputValidationError Uses

type DialogInputValidationError struct {
    Name  string `json:"name"`
    Error string `json:"error"`
}

DialogInputValidationError is an error when user inputs incorrect value to form from within a dialog

type DialogInputValidationErrors Uses

type DialogInputValidationErrors struct {
    Errors []DialogInputValidationError `json:"errors"`
}

DialogInputValidationErrors lists the name of field and that error messages

type DialogOpenResponse Uses

type DialogOpenResponse struct {
    SlackResponse
    DialogResponseMetadata DialogResponseMetadata `json:"response_metadata"`
}

DialogOpenResponse response from `dialog.open`

type DialogOptionGroup Uses

type DialogOptionGroup struct {
    Label   string               `json:"label"`
    Options []DialogSelectOption `json:"options"`
}

DialogOptionGroup is a collection of options for creating a segmented table

func NewDialogOptionGroup Uses

func NewDialogOptionGroup(label string, options ...DialogSelectOption) DialogOptionGroup

NewDialogOptionGroup creates a DialogOptionGroup from several select options

type DialogResponseMetadata Uses

type DialogResponseMetadata struct {
    Messages []string `json:"messages"`
}

DialogResponseMetadata lists the error messages

type DialogSelectOption Uses

type DialogSelectOption struct {
    Label string `json:"label"`
    Value string `json:"value"`
}

DialogSelectOption is an option for the user to select from the menu

type DialogSubmissionCallback Uses

type DialogSubmissionCallback struct {
    State      string            `json:"state,omitempty"`
    Submission map[string]string `json:"submission"`
}

DialogSubmissionCallback is sent from Slack when a user submits a form from within a dialog

type DialogTrigger Uses

type DialogTrigger struct {
    TriggerID string `json:"trigger_id"` //Required. Must respond within 3 seconds.
    Dialog    Dialog `json:"dialog"`     //Required.
}

DialogTrigger ...

type DisconnectedEvent Uses

type DisconnectedEvent struct {
    Intentional bool
    Cause       error
}

DisconnectedEvent contains information about how we disconnected

type DividerBlock Uses

type DividerBlock struct {
    Type    MessageBlockType `json:"type"`
    BlockID string           `json:"block_id,omitempty"`
}

DividerBlock for displaying a divider line between blocks (similar to <hr> tag in html)

More Information: https://api.slack.com/reference/messaging/blocks#divider

func NewDividerBlock Uses

func NewDividerBlock() *DividerBlock

NewDividerBlock returns a new instance of a divider block

func (DividerBlock) BlockType Uses

func (s DividerBlock) BlockType() MessageBlockType

BlockType returns the type of the block

type Edited Uses

type Edited struct {
    User      string `json:"user,omitempty"`
    Timestamp string `json:"ts,omitempty"`
}

Edited indicates that a message has been edited.

type EmailDomainChangedEvent Uses

type EmailDomainChangedEvent struct {
    Type           string `json:"type"`
    EventTimestamp string `json:"event_ts"`
    EmailDomain    string `json:"email_domain"`
}

EmailDomainChangedEvent represents the email domain changed event

type EmojiChangedEvent Uses

type EmojiChangedEvent struct {
    Type           string   `json:"type"`
    SubType        string   `json:"subtype"`
    Name           string   `json:"name"`
    Names          []string `json:"names"`
    Value          string   `json:"value"`
    EventTimestamp string   `json:"event_ts"`
}

EmojiChangedEvent represents the emoji changed event

type EnterpriseUser Uses

type EnterpriseUser struct {
    ID             string   `json:"id"`
    EnterpriseID   string   `json:"enterprise_id"`
    EnterpriseName string   `json:"enterprise_name"`
    IsAdmin        bool     `json:"is_admin"`
    IsOwner        bool     `json:"is_owner"`
    Teams          []string `json:"teams"`
}

EnterpriseUser is present when a user is part of Slack Enterprise Grid https://api.slack.com/types/user#enterprise_grid_user_objects

type Event Uses

type Event struct {
    Type string `json:"type,omitempty"`
}

Event contains the event type

type File Uses

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"`
    ImageExifRotation int    `json:"image_exif_rotation"`
    Filetype          string `json:"filetype"`
    PrettyType        string `json:"pretty_type"`
    User              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"`          // Deprecated - never set
    URLDownload        string `json:"url_download"` // Deprecated - never set
    URLPrivate         string `json:"url_private"`
    URLPrivateDownload string `json:"url_private_download"`

    OriginalH   int    `json:"original_h"`
    OriginalW   int    `json:"original_w"`
    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"`
    PublicURLShared bool     `json:"public_url_shared"`
    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"`
    Shares          Share    `json:"shares"`
}

File contains all the information for a file

type FileChangeEvent Uses

type FileChangeEvent fileActionEvent

FileChangeEvent represents the File change event

type FileCommentAddedEvent Uses

type FileCommentAddedEvent struct {
    Comment Comment `json:"comment"`
    // contains filtered or unexported fields
}

FileCommentAddedEvent represents the File comment added event

type FileCommentDeletedEvent Uses

type FileCommentDeletedEvent struct {
    Comment string `json:"comment"`
    // contains filtered or unexported fields
}

FileCommentDeletedEvent represents the File comment deleted event

type FileCommentEditedEvent Uses

type FileCommentEditedEvent struct {
    Comment Comment `json:"comment"`
    // contains filtered or unexported fields
}

FileCommentEditedEvent represents the File comment edited event

type FileCreatedEvent Uses

type FileCreatedEvent fileActionEvent

FileCreatedEvent represents the File created event

type FileDeletedEvent Uses

type FileDeletedEvent fileActionEvent

FileDeletedEvent represents the File deleted event

type FilePrivateEvent Uses

type FilePrivateEvent fileActionEvent

FilePrivateEvent represents the File private event

type FilePublicEvent Uses

type FilePublicEvent fileActionEvent

FilePublicEvent represents the File public event

type FileSharedEvent Uses

type FileSharedEvent fileActionEvent

FileSharedEvent represents the File shared event

type FileUnsharedEvent Uses

type FileUnsharedEvent fileActionEvent

FileUnsharedEvent represents the File unshared event

type FileUploadParameters Uses

type FileUploadParameters struct {
    File            string
    Content         string
    Reader          io.Reader
    Filetype        string
    Filename        string
    Title           string
    InitialComment  string
    Channels        []string
    ThreadTimestamp string
}

FileUploadParameters contains all the parameters necessary (including the optional ones) for an UploadFile() request.

There are three ways to upload a file. You can either set Content if file is small, set Reader if file is large, or provide a local file path in File to upload it from your filesystem.

Note that when using the Reader option, you *must* specify the Filename, otherwise the Slack API isn't happy.

type GetChannelsOption Uses

type GetChannelsOption func(*channelsConfig) error

GetChannelsOption option provided when getting channels.

func GetChannelsOptionExcludeArchived Uses

func GetChannelsOptionExcludeArchived() GetChannelsOption

GetChannelsOptionExcludeArchived excludes archived channels from results.

func GetChannelsOptionExcludeMembers Uses

func GetChannelsOptionExcludeMembers() GetChannelsOption

GetChannelsOptionExcludeMembers excludes the members collection from each channel.

type GetConversationHistoryParameters Uses

type GetConversationHistoryParameters struct {
    ChannelID string
    Cursor    string
    Inclusive bool
    Latest    string
    Limit     int
    Oldest    string
}

type GetConversationHistoryResponse Uses

type GetConversationHistoryResponse struct {
    SlackResponse
    HasMore          bool   `json:"has_more"`
    PinCount         int    `json:"pin_count"`
    Latest           string `json:"latest"`
    ResponseMetaData struct {
        NextCursor string `json:"next_cursor"`
    }   `json:"response_metadata"`
    Messages []Message `json:"messages"`
}

type GetConversationRepliesParameters Uses

type GetConversationRepliesParameters struct {
    ChannelID string
    Timestamp string
    Cursor    string
    Inclusive bool
    Latest    string
    Limit     int
    Oldest    string
}

type GetConversationsForUserParameters Uses

type GetConversationsForUserParameters struct {
    UserID          string
    Cursor          string
    Types           []string
    Limit           int
    ExcludeArchived bool
}

type GetConversationsParameters Uses

type GetConversationsParameters struct {
    Cursor          string
    ExcludeArchived string
    Limit           int
    Types           []string
}

type GetFilesParameters Uses

type GetFilesParameters struct {
    User          string
    Channel       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 Uses

func NewGetFilesParameters() GetFilesParameters

NewGetFilesParameters provides an instance of GetFilesParameters with all the sane default values set

type GetReactionsParameters Uses

type GetReactionsParameters struct {
    Full bool
}

GetReactionsParameters is the inputs to get reactions to an item.

func NewGetReactionsParameters Uses

func NewGetReactionsParameters() GetReactionsParameters

NewGetReactionsParameters initializes the inputs to get reactions to an item.

type GetUserGroupsOption Uses

type GetUserGroupsOption func(*GetUserGroupsParams)

GetUserGroupsOption options for the GetUserGroups method call.

func GetUserGroupsOptionIncludeCount Uses

func GetUserGroupsOptionIncludeCount(b bool) GetUserGroupsOption

GetUserGroupsOptionIncludeCount include the number of users in each User Group (default: false)

func GetUserGroupsOptionIncludeDisabled Uses

func GetUserGroupsOptionIncludeDisabled(b bool) GetUserGroupsOption

GetUserGroupsOptionIncludeDisabled include disabled User Groups (default: false)

func GetUserGroupsOptionIncludeUsers Uses

func GetUserGroupsOptionIncludeUsers(b bool) GetUserGroupsOption

GetUserGroupsOptionIncludeUsers include the list of users for each User Group (default: false)

type GetUserGroupsParams Uses

type GetUserGroupsParams struct {
    IncludeCount    bool
    IncludeDisabled bool
    IncludeUsers    bool
}

GetUserGroupsParams contains arguments for GetUserGroups method call

type GetUsersInConversationParameters Uses

type GetUsersInConversationParameters struct {
    ChannelID string
    Cursor    string
    Limit     int
}

type GetUsersOption Uses

type GetUsersOption func(*UserPagination)

GetUsersOption options for the GetUsers method call.

func GetUsersOptionLimit Uses

func GetUsersOptionLimit(n int) GetUsersOption

GetUsersOptionLimit limit the number of users returned

func GetUsersOptionPresence Uses

func GetUsersOptionPresence(n bool) GetUsersOption

GetUsersOptionPresence include user presence

type Group Uses

type Group struct {
    GroupConversation
    IsGroup bool `json:"is_group"`
}

Group contains all the information for a group

type GroupArchiveEvent Uses

type GroupArchiveEvent ChannelInfoEvent

GroupArchiveEvent represents the Group archive event

type GroupCloseEvent Uses

type GroupCloseEvent ChannelInfoEvent

GroupCloseEvent represents the Group close event

type GroupConversation Uses

type GroupConversation struct {
    Conversation
    Name       string   `json:"name"`
    Creator    string   `json:"creator"`
    IsArchived bool     `json:"is_archived"`
    Members    []string `json:"members"`
    Topic      Topic    `json:"topic"`
    Purpose    Purpose  `json:"purpose"`
}

GroupConversation is the foundation for Group and Channel

type GroupCreatedEvent Uses

type GroupCreatedEvent struct {
    Type    string             `json:"type"`
    User    string             `json:"user"`
    Channel ChannelCreatedInfo `json:"channel"`
}

GroupCreatedEvent represents the Group created event

type GroupHistoryChangedEvent Uses

type GroupHistoryChangedEvent ChannelHistoryChangedEvent

GroupHistoryChangedEvent represents the Group history changed event

type GroupJoinedEvent Uses

type GroupJoinedEvent ChannelJoinedEvent

GroupJoinedEvent represents the Group joined event

type GroupLeftEvent Uses

type GroupLeftEvent ChannelInfoEvent

GroupLeftEvent represents the Group left event

type GroupMarkedEvent Uses

type GroupMarkedEvent ChannelInfoEvent

GroupMarkedEvent represents the Group marked event

type GroupOpenEvent Uses

type GroupOpenEvent ChannelInfoEvent

GroupOpenEvent represents the Group open event

type GroupRenameEvent Uses

type GroupRenameEvent struct {
    Type      string          `json:"type"`
    Group     GroupRenameInfo `json:"channel"`
    Timestamp string          `json:"ts"`
}

GroupRenameEvent represents the Group rename event

type GroupRenameInfo Uses

type GroupRenameInfo struct {
    ID      string `json:"id"`
    Name    string `json:"name"`
    Created string `json:"created"`
}

GroupRenameInfo represents the group info related to the renamed group

type GroupUnarchiveEvent Uses

type GroupUnarchiveEvent ChannelInfoEvent

GroupUnarchiveEvent represents the Group unarchive event

type HelloEvent Uses

type HelloEvent struct{}

HelloEvent represents the hello event

type History Uses

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 Uses

type HistoryParameters struct {
    Latest    string
    Oldest    string
    Count     int
    Inclusive bool
    Unreads   bool
}

HistoryParameters contains all the necessary information to help in the retrieval of history for Channels/Groups/DMs

func NewHistoryParameters Uses

func NewHistoryParameters() HistoryParameters

NewHistoryParameters provides an instance of HistoryParameters with all the sane default values set

type IDGenerator Uses

type IDGenerator interface {
    Next() int
}

IDGenerator provides an interface for generating integer ID values.

func NewSafeID Uses

func NewSafeID(startID int) IDGenerator

NewSafeID returns a new instance of an IDGenerator which is safe for concurrent use by multiple goroutines.

type IM Uses

type IM struct {
    Conversation
    IsUserDeleted bool `json:"is_user_deleted"`
}

IM contains information related to the Direct Message channel

type IMCloseEvent Uses

type IMCloseEvent ChannelInfoEvent

IMCloseEvent represents the IM close event

type IMCreatedEvent Uses

type IMCreatedEvent struct {
    Type    string             `json:"type"`
    User    string             `json:"user"`
    Channel ChannelCreatedInfo `json:"channel"`
}

IMCreatedEvent represents the IM created event

type IMHistoryChangedEvent Uses

type IMHistoryChangedEvent ChannelHistoryChangedEvent

IMHistoryChangedEvent represents the IM history changed event

type IMMarkedEvent Uses

type IMMarkedEvent ChannelInfoEvent

IMMarkedEvent represents the IM marked event

type IMMarkedHistoryChanged Uses

type IMMarkedHistoryChanged ChannelInfoEvent

IMMarkedHistoryChanged represents the IM marked history changed event

type IMOpenEvent Uses

type IMOpenEvent ChannelInfoEvent

IMOpenEvent represents the IM open event

type Icon Uses

type Icon struct {
    IconURL   string `json:"icon_url,omitempty"`
    IconEmoji string `json:"icon_emoji,omitempty"`
}

Icon is used for bot messages

type Icons Uses

type Icons struct {
    Image36 string `json:"image_36,omitempty"`
    Image48 string `json:"image_48,omitempty"`
    Image72 string `json:"image_72,omitempty"`
}

Icons XXX: needs further investigation

type ImageBlock Uses

type ImageBlock struct {
    Type     MessageBlockType `json:"type"`
    ImageURL string           `json:"image_url"`
    AltText  string           `json:"alt_text"`
    BlockID  string           `json:"block_id,omitempty"`
    Title    *TextBlockObject `json:"title"`
}

ImageBlock defines data required to display an image as a block element

More Information: https://api.slack.com/reference/messaging/blocks#image

func NewImageBlock Uses

func NewImageBlock(imageURL, altText, blockID string, title *TextBlockObject) *ImageBlock

NewImageBlock returns an instance of a new Image Block type

func (ImageBlock) BlockType Uses

func (s ImageBlock) BlockType() MessageBlockType

BlockType returns the type of the block

type ImageBlockElement Uses

type ImageBlockElement struct {
    Type     MessageElementType `json:"type"`
    ImageURL string             `json:"image_url"`
    AltText  string             `json:"alt_text"`
}

ImageBlockElement An element to insert an image - this element can be used in section and context blocks only. If you want a block with only an image in it, you're looking for the image block.

More Information: https://api.slack.com/reference/messaging/block-elements#image

func NewImageBlockElement Uses

func NewImageBlockElement(imageURL, altText string) *ImageBlockElement

NewImageBlockElement returns a new instance of an image block element

func (ImageBlockElement) ElementType Uses

func (s ImageBlockElement) ElementType() MessageElementType

ElementType returns the type of the Element

func (ImageBlockElement) MixedElementType Uses

func (s ImageBlockElement) MixedElementType() MixedElementType

type IncomingEventError Uses

type IncomingEventError struct {
    ErrorObj error
}

IncomingEventError contains information about an unexpected error receiving a websocket event

func (*IncomingEventError) Error Uses

func (i *IncomingEventError) Error() string

type Info Uses

type Info struct {
    URL  string       `json:"url,omitempty"`
    User *UserDetails `json:"self,omitempty"`
    Team *Team        `json:"team,omitempty"`
}

Info contains various details about the authenticated user and team. It is returned by StartRTM or included in the "ConnectedEvent" RTM event.

func (Info) GetBotByID Uses

func (info Info) GetBotByID(botID string) *Bot

GetBotByID is deprecated and returns nil

func (Info) GetChannelByID Uses

func (info Info) GetChannelByID(channelID string) *Channel

GetChannelByID is deprecated and returns nil

func (Info) GetGroupByID Uses

func (info Info) GetGroupByID(groupID string) *Group

GetGroupByID is deprecated and returns nil

func (Info) GetIMByID Uses

func (info Info) GetIMByID(imID string) *IM

GetIMByID is deprecated and returns nil

func (Info) GetUserByID Uses

func (info Info) GetUserByID(userID string) *User

GetUserByID is deprecated and returns nil

type InputType Uses

type InputType string

InputType is the type of the dialog input type

const (
    // InputTypeText textfield input
    InputTypeText InputType = "text"
    // InputTypeTextArea textarea input
    InputTypeTextArea InputType = "textarea"
    // InputTypeSelect select menus input
    InputTypeSelect InputType = "select"
)

type InteractionCallback Uses

type InteractionCallback struct {
    Type            InteractionType `json:"type"`
    Token           string          `json:"token"`
    CallbackID      string          `json:"callback_id"`
    ResponseURL     string          `json:"response_url"`
    TriggerID       string          `json:"trigger_id"`
    ActionTs        string          `json:"action_ts"`
    Team            Team            `json:"team"`
    Channel         Channel         `json:"channel"`
    User            User            `json:"user"`
    OriginalMessage Message         `json:"original_message"`
    Message         Message         `json:"message"`
    Name            string          `json:"name"`
    Value           string          `json:"value"`
    MessageTs       string          `json:"message_ts"`
    AttachmentID    string          `json:"attachment_id"`
    ActionCallback  ActionCallbacks `json:"actions"`
    DialogSubmissionCallback
}

InteractionCallback is sent from slack when a user interactions with a button or dialog.

type InteractionType Uses

type InteractionType string

InteractionType type of interactions

type InvalidAuthEvent Uses

type InvalidAuthEvent struct{}

InvalidAuthEvent is used in case we can't even authenticate with the API

type Item Uses

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 Uses

func NewChannelItem(ch string) Item

NewChannelItem turns a channel id into a typed channel struct.

func NewFileCommentItem Uses

func NewFileCommentItem(f *File, c *Comment) Item

NewFileCommentItem turns a file and comment into a typed file_comment struct.

func NewFileItem Uses

func NewFileItem(f *File) Item

NewFileItem turns a file into a typed file struct.

func NewGroupItem Uses

func NewGroupItem(ch string) Item

NewGroupItem turns a channel id into a typed group struct.

func NewIMItem Uses

func NewIMItem(ch string) Item

NewIMItem turns a channel id into a typed im struct.

func NewMessageItem Uses

func NewMessageItem(ch string, m *Message) Item

NewMessageItem turns a message on a channel into a typed message struct.

type ItemReaction Uses

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 Uses

type ItemRef struct {
    Channel   string `json:"channel"`
    Timestamp string `json:"timestamp"`
    File      string `json:"file"`
    Comment   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 Uses

func NewRefToComment(comment string) ItemRef

NewRefToComment initializes a reference to a file comment.

func NewRefToFile Uses

func NewRefToFile(file string) ItemRef

NewRefToFile initializes a reference to a file.

func NewRefToMessage Uses

func NewRefToMessage(channel, timestamp string) ItemRef

NewRefToMessage initializes a reference to to a message.

type JSONTime Uses

type JSONTime int64

JSONTime exists so that we can have a String method converting the date

func (JSONTime) String Uses

func (t JSONTime) String() string

String converts the unix timestamp into a string

func (JSONTime) Time Uses

func (t JSONTime) Time() time.Time

Time returns a `time.Time` representation of this value.

func (*JSONTime) UnmarshalJSON Uses

func (t *JSONTime) UnmarshalJSON(buf []byte) error

UnmarshalJSON will unmarshal both string and int JSON values

type LatencyReport Uses

type LatencyReport struct {
    Value time.Duration
}

LatencyReport contains information about connection latency

type ListFilesParameters Uses

type ListFilesParameters struct {
    Limit   int
    User    string
    Channel string
    Types   string
    Cursor  string
}

ListFilesParameters contains all the parameters necessary (including the optional ones) for a ListFiles() request

type ListReactionsParameters Uses

type ListReactionsParameters struct {
    User  string
    Count int
    Page  int
    Full  bool
}

ListReactionsParameters is the inputs to find all reactions by a user.

func NewListReactionsParameters Uses

func NewListReactionsParameters() ListReactionsParameters

NewListReactionsParameters initializes the inputs to find all reactions performed by a user.

type ListStarsOption Uses

type ListStarsOption func(*StarredItemPagination)

ListStarsOption options for the GetUsers method call.

type Login Uses

type Login struct {
    UserID    string `json:"user_id"`
    Username  string `json:"username"`
    DateFirst int    `json:"date_first"`
    DateLast  int    `json:"date_last"`
    Count     int    `json:"count"`
    IP        string `json:"ip"`
    UserAgent string `json:"user_agent"`
    ISP       string `json:"isp"`
    Country   string `json:"country"`
    Region    string `json:"region"`
}

type LoginResponse Uses

type LoginResponse struct {
    Logins []Login `json:"logins"`
    Paging `json:"paging"`
    SlackResponse
}

type ManualPresenceChangeEvent Uses

type ManualPresenceChangeEvent struct {
    Type     string `json:"type"`
    Presence string `json:"presence"`
}

ManualPresenceChangeEvent represents the manual presence change event

type MemberJoinedChannelEvent Uses

type MemberJoinedChannelEvent struct {
    Type        string `json:"type"`
    User        string `json:"user"`
    Channel     string `json:"channel"`
    ChannelType string `json:"channel_type"`
    Team        string `json:"team"`
    Inviter     string `json:"inviter"`
}

MemberJoinedChannelEvent, a user joined a public or private channel

type MemberLeftChannelEvent Uses

type MemberLeftChannelEvent struct {
    Type        string `json:"type"`
    User        string `json:"user"`
    Channel     string `json:"channel"`
    ChannelType string `json:"channel_type"`
    Team        string `json:"team"`
}

MemberJoinedChannelEvent, a user left a public or private channel

type Message Uses

type Message struct {
    Msg
    SubMessage      *Msg `json:"message,omitempty"`
    PreviousMessage *Msg `json:"previous_message,omitempty"`
}

Message is an auxiliary type to allow us to have a message containing sub messages

func AddBlockMessage Uses

func AddBlockMessage(message Message, newBlk Block) Message

AddBlockMessage appends a block to the end of the existing list of blocks

func NewBlockMessage Uses

func NewBlockMessage(blocks ...Block) Message

NewBlockMessage creates a new Message that contains one or more blocks to be displayed

type MessageBlockType Uses

type MessageBlockType string

MessageBlockType defines a named string type to define each block type as a constant for use within the package.

const (
    MBTSection MessageBlockType = "section"
    MBTDivider MessageBlockType = "divider"
    MBTImage   MessageBlockType = "image"
    MBTAction  MessageBlockType = "actions"
    MBTContext MessageBlockType = "context"
)

type MessageElementType Uses

type MessageElementType string

type MessageEvent Uses

type MessageEvent Message

MessageEvent represents a Slack Message (used as the event type for an incoming message)

type MessageObjectType Uses

type MessageObjectType string

type MessageTooLongEvent Uses

type MessageTooLongEvent struct {
    Message   OutgoingMessage
    MaxLength int
}

MessageTooLongEvent is used when sending a message that is too long

func (*MessageTooLongEvent) Error Uses

func (m *MessageTooLongEvent) Error() string

type MixedElement Uses

type MixedElement interface {
    MixedElementType() MixedElementType
}

type MixedElementType Uses

type MixedElementType string

type Msg Uses

type Msg struct {
    // Basic Message
    Type            string       `json:"type,omitempty"`
    Channel         string       `json:"channel,omitempty"`
    User            string       `json:"user,omitempty"`
    Text            string       `json:"text,omitempty"`
    Timestamp       string       `json:"ts,omitempty"`
    ThreadTimestamp string       `json:"thread_ts,omitempty"`
    IsStarred       bool         `json:"is_starred,omitempty"`
    PinnedTo        []string     `json:"pinned_to,omitempty"`
    Attachments     []Attachment `json:"attachments,omitempty"`
    Edited          *Edited      `json:"edited,omitempty"`
    LastRead        string       `json:"last_read,omitempty"`
    Subscribed      bool         `json:"subscribed,omitempty"`
    UnreadCount     int          `json:"unread_count,omitempty"`

    // Message Subtypes
    SubType string `json:"subtype,omitempty"`

    // 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"`

    // channels.replies, groups.replies, im.replies, mpim.replies
    ReplyCount   int     `json:"reply_count,omitempty"`
    Replies      []Reply `json:"replies,omitempty"`
    ParentUserId string  `json:"parent_user_id,omitempty"`

    // file_share, file_comment, file_mention
    Files []File `json:"files,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 []ItemReaction `json:"reactions,omitempty"`

    // slash commands and interactive messages
    ResponseType    string `json:"response_type,omitempty"`
    ReplaceOriginal bool   `json:"replace_original"`
    DeleteOriginal  bool   `json:"delete_original"`

    // Block type Message
    Blocks Blocks `json:"blocks,omitempty"`
}

Msg contains information about a slack message

type MsgOption Uses

type MsgOption func(*sendConfig) error

MsgOption option provided when sending a message.

func MsgOptionAsUser Uses

func MsgOptionAsUser(b bool) MsgOption

MsgOptionAsUser whether or not to send the message as the user.

func MsgOptionAttachments Uses

func MsgOptionAttachments(attachments ...Attachment) MsgOption

MsgOptionAttachments provide attachments for the message.

func MsgOptionBlocks Uses

func MsgOptionBlocks(blocks ...Block) MsgOption

MsgOptionBlocks sets blocks for the message

func MsgOptionBroadcast Uses

func MsgOptionBroadcast() MsgOption

MsgOptionBroadcast sets reply_broadcast to true

func MsgOptionCompose Uses

func MsgOptionCompose(options ...MsgOption) MsgOption

MsgOptionCompose combines multiple options into a single option.

func MsgOptionDelete Uses

func MsgOptionDelete(timestamp string) MsgOption

MsgOptionDelete deletes a message based on the timestamp.

func MsgOptionDisableLinkUnfurl Uses

func MsgOptionDisableLinkUnfurl() MsgOption

MsgOptionDisableLinkUnfurl disables link unfurling

func MsgOptionDisableMarkdown Uses

func MsgOptionDisableMarkdown() MsgOption

MsgOptionDisableMarkdown disables markdown.

func MsgOptionDisableMediaUnfurl Uses

func MsgOptionDisableMediaUnfurl() MsgOption

MsgOptionDisableMediaUnfurl disables media unfurling.

func MsgOptionEnableLinkUnfurl Uses

func MsgOptionEnableLinkUnfurl() MsgOption

MsgOptionEnableLinkUnfurl enables link unfurling

func MsgOptionIconEmoji Uses

func MsgOptionIconEmoji(iconEmoji string) MsgOption

MsgOptionIconEmoji sets an icon emoji

func MsgOptionIconURL Uses

func MsgOptionIconURL(iconURL string) MsgOption

MsgOptionIconURL sets an icon URL

func MsgOptionMeMessage Uses

func MsgOptionMeMessage() MsgOption

MsgOptionMeMessage posts a "me message" type from the calling user

func MsgOptionParse Uses

func MsgOptionParse(b bool) MsgOption

MsgOptionParse set parse option.

func MsgOptionPost Uses

func MsgOptionPost() MsgOption

MsgOptionPost posts a messages, this is the default.

func MsgOptionPostEphemeral Uses

func MsgOptionPostEphemeral(userID string) MsgOption

MsgOptionPostEphemeral - posts an ephemeral message to the provided user.

func MsgOptionPostMessageParameters Uses

func MsgOptionPostMessageParameters(params PostMessageParameters) MsgOption

MsgOptionPostMessageParameters maintain backwards compatibility.

func MsgOptionResponseURL Uses

func MsgOptionResponseURL(url string, rt string) MsgOption

MsgOptionResponseURL supplies a url to use as the endpoint.

func MsgOptionTS Uses

func MsgOptionTS(ts string) MsgOption

MsgOptionTS sets the thread TS of the message to enable creating or replying to a thread

func MsgOptionText Uses

func MsgOptionText(text string, escape bool) MsgOption

MsgOptionText provide the text for the message, optionally escape the provided text.

func MsgOptionUnfurl Uses

func MsgOptionUnfurl(timestamp string, unfurls map[string]Attachment) MsgOption

MsgOptionUnfurl unfurls a message based on the timestamp.

func MsgOptionUpdate Uses

func MsgOptionUpdate(timestamp string) MsgOption

MsgOptionUpdate updates a message based on the timestamp.

func MsgOptionUser Uses

func MsgOptionUser(userID string) MsgOption

MsgOptionUser set the user for the message.

func MsgOptionUsername Uses

func MsgOptionUsername(username string) MsgOption

MsgOptionUsername set the username for the message.

func UnsafeMsgOptionEndpoint Uses

func UnsafeMsgOptionEndpoint(endpoint string, update func(url.Values)) MsgOption

UnsafeMsgOptionEndpoint deliver the message to the specified endpoint. NOTE: USE AT YOUR OWN RISK: No issues relating to the use of this Option will be supported by the library, it is subject to change without notice that may result in compilation errors or runtime behaviour changes.

type OAuthResponse Uses

type OAuthResponse struct {
    AccessToken     string                       `json:"access_token"`
    Scope           string                       `json:"scope"`
    TeamName        string                       `json:"team_name"`
    TeamID          string                       `json:"team_id"`
    IncomingWebhook OAuthResponseIncomingWebhook `json:"incoming_webhook"`
    Bot             OAuthResponseBot             `json:"bot"`
    UserID          string                       `json:"user_id,omitempty"`
    SlackResponse
}

OAuthResponse ...

func GetOAuthResponse Uses

func GetOAuthResponse(client httpClient, clientID, clientSecret, code, redirectURI string) (resp *OAuthResponse, err error)

func GetOAuthResponseContext Uses

func GetOAuthResponseContext(ctx context.Context, client httpClient, clientID, clientSecret, code, redirectURI string) (resp *OAuthResponse, err error)

type OAuthResponseBot Uses

type OAuthResponseBot struct {
    BotUserID      string `json:"bot_user_id"`
    BotAccessToken string `json:"bot_access_token"`
}

OAuthResponseBot ...

type OAuthResponseIncomingWebhook Uses

type OAuthResponseIncomingWebhook struct {
    URL              string `json:"url"`
    Channel          string `json:"channel"`
    ChannelID        string `json:"channel_id,omitempty"`
    ConfigurationURL string `json:"configuration_url"`
}

OAuthResponseIncomingWebhook ...

type OpenConversationParameters Uses

type OpenConversationParameters struct {
    ChannelID string
    ReturnIM  bool
    Users     []string
}

type Option Uses

type Option func(*Client)

Option defines an option for a Client

type OptionBlockObject Uses

type OptionBlockObject struct {
    Text  *TextBlockObject `json:"text"`
    Value string           `json:"value"`
    URL   string           `json:"url"`
}

OptionBlockObject represents a single selectable item in a select menu

More Information: https://api.slack.com/reference/messaging/composition-objects#option

func NewOptionBlockObject Uses

func NewOptionBlockObject(value string, text *TextBlockObject) *OptionBlockObject

NewOptionBlockObject returns an instance of a new Option Block Element

type OptionGroupBlockObject Uses

type OptionGroupBlockObject struct {
    Label   *TextBlockObject     `json:"label,omitempty"`
    Options []*OptionBlockObject `json:"options"`
}

OptionGroupBlockObject Provides a way to group options in a select menu.

More Information: https://api.slack.com/reference/messaging/composition-objects#option-group

func NewOptionGroupBlockElement Uses

func NewOptionGroupBlockElement(label *TextBlockObject, options ...*OptionBlockObject) *OptionGroupBlockObject

NewOptionGroupBlockElement returns an instance of a new option group block element

type OutgoingErrorEvent Uses

type OutgoingErrorEvent struct {
    Message  OutgoingMessage
    ErrorObj error
}

OutgoingErrorEvent contains information in case there were errors sending messages

func (OutgoingErrorEvent) Error Uses

func (o OutgoingErrorEvent) Error() string

type OutgoingMessage Uses

type OutgoingMessage struct {
    ID  int `json:"id"`
    // channel ID
    Channel         string   `json:"channel,omitempty"`
    Text            string   `json:"text,omitempty"`
    Type            string   `json:"type,omitempty"`
    ThreadTimestamp string   `json:"thread_ts,omitempty"`
    ThreadBroadcast bool     `json:"reply_broadcast,omitempty"`
    IDs             []string `json:"ids,omitempty"`
}

OutgoingMessage is used for the realtime API, and seems incomplete.

type OverflowBlockElement Uses

type OverflowBlockElement struct {
    Type     MessageElementType       `json:"type"`
    ActionID string                   `json:"action_id,omitempty"`
    Options  []*OptionBlockObject     `json:"options"`
    Confirm  *ConfirmationBlockObject `json:"confirm,omitempty"`
}

OverflowBlockElement defines the fields needed to use an overflow element. And Overflow Element is like a cross between a button and a select menu - when a user clicks on this overflow button, they will be presented with a list of options to choose from.

More Information: https://api.slack.com/reference/messaging/block-elements#overflow

func NewOverflowBlockElement Uses

func NewOverflowBlockElement(actionID string, options ...*OptionBlockObject) *OverflowBlockElement

NewOverflowBlockElement returns an instance of a new Overflow Block Element

func (OverflowBlockElement) ElementType Uses

func (s OverflowBlockElement) ElementType() MessageElementType

ElementType returns the type of the Element

type Pagination Uses

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 Uses

type Paging struct {
    Count int `json:"count"`
    Total int `json:"total"`
    Page  int `json:"page"`
    Pages int `json:"pages"`
}

Paging contains paging information

type ParamOption Uses

type ParamOption func(*url.Values)

Client for the slack api.

type PermalinkParameters Uses

type PermalinkParameters struct {
    Channel string
    Ts      string
}

PermalinkParameters are the parameters required to get a permalink to a message. Slack documentation can be found here: https://api.slack.com/methods/chat.getPermalink

type PinAddedEvent Uses

type PinAddedEvent pinEvent

PinAddedEvent represents the Pin added event

type PinRemovedEvent Uses

type PinRemovedEvent pinEvent

PinRemovedEvent represents the Pin removed event

type Ping Uses

type Ping struct {
    ID        int    `json:"id"`
    Type      string `json:"type"`
    Timestamp int64  `json:"timestamp"`
}

Ping contains information about a Ping Event

type Pong Uses

type Pong struct {
    Type      string `json:"type"`
    ReplyTo   int    `json:"reply_to"`
    Timestamp int64  `json:"timestamp"`
}

Pong contains information about a Pong Event

type PostMessageParameters Uses

type PostMessageParameters struct {
    Username        string `json:"username"`
    AsUser          bool   `json:"as_user"`
    Parse           string `json:"parse"`
    ThreadTimestamp string `json:"thread_ts"`
    ReplyBroadcast  bool   `json:"reply_broadcast"`
    LinkNames       int    `json:"link_names"`
    UnfurlLinks     bool   `json:"unfurl_links"`
    UnfurlMedia     bool   `json:"unfurl_media"`
    IconURL         string `json:"icon_url"`
    IconEmoji       string `json:"icon_emoji"`
    Markdown        bool   `json:"mrkdwn,omitempty"`
    EscapeText      bool   `json:"escape_text"`

    // chat.postEphemeral support
    Channel string `json:"channel"`
    User    string `json:"user"`
}

PostMessageParameters contains all the parameters necessary (including the optional ones) for a PostMessage() request

func NewPostMessageParameters Uses

func NewPostMessageParameters() PostMessageParameters

NewPostMessageParameters provides an instance of PostMessageParameters with all the sane default values set

type PrefChangeEvent Uses

type PrefChangeEvent struct {
    Type  string          `json:"type"`
    Name  string          `json:"name"`
    Value json.RawMessage `json:"value"`
}

PrefChangeEvent represents a user preferences change event

type PresenceChangeEvent Uses

type PresenceChangeEvent struct {
    Type     string   `json:"type"`
    Presence string   `json:"presence"`
    User     string   `json:"user"`
    Users    []string `json:"users"`
}

PresenceChangeEvent represents the presence change event

type Purpose Uses

type Purpose struct {
    Value   string   `json:"value"`
    Creator string   `json:"creator"`
    LastSet JSONTime `json:"last_set"`
}

Purpose contains information about the purpose

type RTM Uses

type RTM struct {
    // Client is the main API, embedded
    Client

    IncomingEvents chan RTMEvent
    // contains filtered or unexported fields
}

RTM represents a managed websocket connection. It also supports all the methods of the `Client` type.

Create this element with Client's NewRTM() or NewRTMWithOptions(*RTMOptions)

func (*RTM) Disconnect Uses

func (rtm *RTM) Disconnect() error

Disconnect and wait, blocking until a successful disconnection.

func (*RTM) GetInfo Uses

func (rtm *RTM) GetInfo() *Info

GetInfo returns the info structure received when calling "startrtm", holding metadata needed to implement a full chat client. It will be non-nil after a call to StartRTM().

func (*RTM) ManageConnection Uses

func (rtm *RTM) ManageConnection()

ManageConnection can be called on a Slack RTM instance returned by the NewRTM method. It will connect to the slack RTM API and handle all incoming and outgoing events. If a connection fails then it will attempt to reconnect and will notify any listeners through an error event on the IncomingEvents channel.

If the connection ends and the disconnect was unintentional then this will attempt to reconnect.

This should only be called once per slack API! Otherwise expect undefined behavior.

The defined error events are located in websocket_internals.go.

func (*RTM) NewOutgoingMessage Uses

func (rtm *RTM) NewOutgoingMessage(text string, channelID string, options ...RTMsgOption) *OutgoingMessage

NewOutgoingMessage prepares an OutgoingMessage that the user can use to send a message. Use this function to properly set the messageID.

func (*RTM) NewSubscribeUserPresence Uses

func (rtm *RTM) NewSubscribeUserPresence(ids []string) *OutgoingMessage

NewSubscribeUserPresence prepares an OutgoingMessage that the user can use to subscribe presence events for the specified users.

func (*RTM) NewTypingMessage Uses

func (rtm *RTM) NewTypingMessage(channelID string) *OutgoingMessage

NewTypingMessage prepares an OutgoingMessage that the user can use to send as a typing indicator. Use this function to properly set the messageID.

func (*RTM) SendMessage Uses

func (rtm *RTM) SendMessage(msg *OutgoingMessage)

SendMessage submits a simple message through the websocket. For more complicated messages, use `rtm.PostMessage` with a complete struct describing your attachments and all.

type RTMError Uses

type RTMError struct {
    Code int
    Msg  string
}

RTMError encapsulates error information as returned by the Slack API

func (RTMError) Error Uses

func (s RTMError) Error() string

type RTMEvent Uses

type RTMEvent struct {
    Type string
    Data interface{}
}

RTMEvent is the main wrapper. You will find all the other messages attached

type RTMOption Uses

type RTMOption func(*RTM)

RTMOption options for the managed RTM.

func RTMOptionConnParams Uses

func RTMOptionConnParams(connParams url.Values) RTMOption

RTMOptionConnParams installs parameters to embed into the connection URL.

func RTMOptionDialer Uses

func RTMOptionDialer(d *websocket.Dialer) RTMOption

RTMOptionDialer takes a gorilla websocket Dialer and uses it as the Dialer when opening the websocket for the RTM connection.

func RTMOptionPingInterval Uses

func RTMOptionPingInterval(d time.Duration) RTMOption

RTMOptionPingInterval determines how often to deliver a ping message to slack.

func RTMOptionUseStart Uses

func RTMOptionUseStart(b bool) RTMOption

RTMOptionUseStart as of 11th July 2017 you should prefer setting this to false, see: https://api.slack.com/changelog/2017-04-start-using-rtm-connect-and-stop-using-rtm-start

type RTMResponse Uses

type RTMResponse struct {
    Ok    bool      `json:"ok"`
    Error *RTMError `json:"error"`
}

RTMResponse encapsulates response details as returned by the Slack API

type RTMsgOption Uses

type RTMsgOption func(*OutgoingMessage)

RTMsgOption allows configuration of various options available for sending an RTM message

func RTMsgOptionBroadcast Uses

func RTMsgOptionBroadcast() RTMsgOption

RTMsgOptionBroadcast sets broadcast reply to channel to "true"

func RTMsgOptionTS Uses

func RTMsgOptionTS(threadTimestamp string) RTMsgOption

RTMsgOptionTS sets thead timestamp of an outgoing message in order to respond to a thread

type RateLimitEvent Uses

type RateLimitEvent struct{}

RateLimitEvent is used when Slack warns that rate-limits are being hit.

func (*RateLimitEvent) Error Uses

func (e *RateLimitEvent) Error() string

type RateLimitedError Uses

type RateLimitedError struct {
    RetryAfter time.Duration
}

RateLimitedError represents the rate limit respond from slack

func (*RateLimitedError) Error Uses

func (e *RateLimitedError) Error() string

func (*RateLimitedError) Retryable Uses

func (e *RateLimitedError) Retryable() bool

type ReactedItem Uses

type ReactedItem struct {
    Item
    Reactions []ItemReaction
}

ReactedItem is an item that was reacted to, and the details of the reactions.

type ReactionAddedEvent Uses

type ReactionAddedEvent reactionEvent

ReactionAddedEvent represents the Reaction added event

type ReactionRemovedEvent Uses

type ReactionRemovedEvent reactionEvent

ReactionRemovedEvent represents the Reaction removed event

type ReconnectUrlEvent Uses

type ReconnectUrlEvent struct {
    Type string `json:"type"`
    URL  string `json:"url"`
}

ReconnectUrlEvent represents the receiving reconnect url event

type Reminder Uses

type Reminder struct {
    ID         string    `json:"id"`
    Creator    string    `json:"creator"`
    User       string    `json:"user"`
    Text       string    `json:"text"`
    Recurring  bool      `json:"recurring"`
    Time       time.Time `json:"time"`
    CompleteTS int       `json:"complete_ts"`
}

type Reply Uses

type Reply struct {
    User      string `json:"user,omitempty"`
    Timestamp string `json:"ts,omitempty"`
}

Reply contains information about a reply for a thread

type ResponseMetadata Uses

type ResponseMetadata struct {
    Cursor string `json:"next_cursor"`
}

ResponseMetadata holds pagination metadata

type SearchFiles Uses

type SearchFiles struct {
    Matches    []File `json:"matches"`
    Paging     `json:"paging"`
    Pagination `json:"pagination"`
    Total      int `json:"total"`
}

type SearchMessage Uses

type SearchMessage struct {
    Type        string       `json:"type"`
    Channel     CtxChannel   `json:"channel"`
    User        string       `json:"user"`
    Username    string       `json:"username"`
    Timestamp   string       `json:"ts"`
    Blocks      Blocks       `json:"blocks,omitempty"`
    Text        string       `json:"text"`
    Permalink   string       `json:"permalink"`
    Attachments []Attachment `json:"attachments"`
    Previous    CtxMessage   `json:"previous"`
    Previous2   CtxMessage   `json:"previous_2"`
    Next        CtxMessage   `json:"next"`
    Next2       CtxMessage   `json:"next_2"`
}

type SearchMessages Uses

type SearchMessages struct {
    Matches    []SearchMessage `json:"matches"`
    Paging     `json:"paging"`
    Pagination `json:"pagination"`
    Total      int `json:"total"`
}

type SearchParameters Uses

type SearchParameters struct {
    Sort          string
    SortDirection string
    Highlight     bool
    Count         int
    Page          int
}

func NewSearchParameters Uses

func NewSearchParameters() SearchParameters

type SecretsVerifier Uses

type SecretsVerifier struct {
    // contains filtered or unexported fields
}

SecretsVerifier contains the information needed to verify that the request comes from Slack

func NewSecretsVerifier Uses

func NewSecretsVerifier(header http.Header, secret string) (sv SecretsVerifier, err error)

NewSecretsVerifier returns a SecretsVerifier object in exchange for an http.Header object and signing secret

func (SecretsVerifier) Ensure Uses

func (v SecretsVerifier) Ensure() error

Ensure compares the signature sent from Slack with the actual computed hash to judge validity

func (*SecretsVerifier) Write Uses

func (v *SecretsVerifier) Write(body []byte) (n int, err error)

type SectionBlock Uses

type SectionBlock struct {
    Type      MessageBlockType   `json:"type"`
    Text      *TextBlockObject   `json:"text,omitempty"`
    BlockID   string             `json:"block_id,omitempty"`
    Fields    []*TextBlockObject `json:"fields,omitempty"`
    Accessory *Accessory         `json:"accessory,omitempty"`
}

SectionBlock defines a new block of type section

More Information: https://api.slack.com/reference/messaging/blocks#section

func NewSectionBlock Uses

func NewSectionBlock(textObj *TextBlockObject, fields []*TextBlockObject, accessory *Accessory, options ...SectionBlockOption) *SectionBlock

NewSectionBlock returns a new instance of a section block to be rendered

func (SectionBlock) BlockType Uses

func (s SectionBlock) BlockType() MessageBlockType

BlockType returns the type of the block

type SectionBlockOption Uses

type SectionBlockOption func(*SectionBlock)

SectionBlockOption allows configuration of options for a new section block

func SectionBlockOptionBlockID Uses

func SectionBlockOptionBlockID(blockID string) SectionBlockOption

type SelectBlockElement Uses

type SelectBlockElement struct {
    Type                string                    `json:"type,omitempty"`
    Placeholder         *TextBlockObject          `json:"placeholder,omitempty"`
    ActionID            string                    `json:"action_id,omitempty"`
    Options             []*OptionBlockObject      `json:"options,omitempty"`
    OptionGroups        []*OptionGroupBlockObject `json:"option_groups,omitempty"`
    InitialOption       *OptionBlockObject        `json:"initial_option,omitempty"`
    InitialUser         string                    `json:"initial_user,omitempty"`
    InitialConversation string                    `json:"initial_conversation,omitempty"`
    InitialChannel      string                    `json:"initial_channel,omitempty"`
    MinQueryLength      int                       `json:"min_query_length,omitempty"`
    Confirm             *ConfirmationBlockObject  `json:"confirm,omitempty"`
}

SelectBlockElement defines the simplest form of select menu, with a static list of options passed in when defining the element.

More Information: https://api.slack.com/reference/messaging/block-elements#select

func NewOptionsGroupSelectBlockElement Uses

func NewOptionsGroupSelectBlockElement(
    optType string,
    placeholder *TextBlockObject,
    actionID string,
    optGroups ...*OptionGroupBlockObject,
) *SelectBlockElement

NewOptionsGroupSelectBlockElement returns a new instance of SelectBlockElement for use with the Options object only.

func NewOptionsSelectBlockElement Uses

func NewOptionsSelectBlockElement(optType string, placeholder *TextBlockObject, actionID string, options ...*OptionBlockObject) *SelectBlockElement

NewOptionsSelectBlockElement returns a new instance of SelectBlockElement for use with the Options object only.

func (SelectBlockElement) ElementType Uses

func (s SelectBlockElement) ElementType() MessageElementType

ElementType returns the type of the Element

type SelectDataSource Uses

type SelectDataSource string

SelectDataSource types of select datasource

const (
    // DialogDataSourceStatic menu with static Options/OptionGroups
    DialogDataSourceStatic SelectDataSource = "static"
    // DialogDataSourceExternal dynamic datasource
    DialogDataSourceExternal SelectDataSource = "external"
    // DialogDataSourceConversations provides a list of conversations
    DialogDataSourceConversations SelectDataSource = "conversations"
    // DialogDataSourceChannels provides a list of channels
    DialogDataSourceChannels SelectDataSource = "channels"
    // DialogDataSourceUsers provides a list of users
    DialogDataSourceUsers SelectDataSource = "users"
)

type Share Uses

type Share struct {
    Public  map[string][]ShareFileInfo `json:"public"`
    Private map[string][]ShareFileInfo `json:"private"`
}

type ShareFileInfo Uses

type ShareFileInfo struct {
    ReplyUsers      []string `json:"reply_users"`
    ReplyUsersCount int      `json:"reply_users_count"`
    ReplyCount      int      `json:"reply_count"`
    Ts              string   `json:"ts"`
    ThreadTs        string   `json:"thread_ts"`
    LatestReply     string   `json:"latest_reply"`
    ChannelName     string   `json:"channel_name"`
    TeamID          string   `json:"team_id"`
}

type SlackResponse Uses

type SlackResponse struct {
    Ok    bool   `json:"ok"`
    Error string `json:"error"`
}

SlackResponse handles parsing out errors from the web api.

func (SlackResponse) Err Uses

func (t SlackResponse) Err() error

type SlashCommand Uses

type SlashCommand struct {
    Token          string `json:"token"`
    TeamID         string `json:"team_id"`
    TeamDomain     string `json:"team_domain"`
    EnterpriseID   string `json:"enterprise_id,omitempty"`
    EnterpriseName string `json:"enterprise_name,omitempty"`
    ChannelID      string `json:"channel_id"`
    ChannelName    string `json:"channel_name"`
    UserID         string `json:"user_id"`
    UserName       string `json:"user_name"`
    Command        string `json:"command"`
    Text           string `json:"text"`
    ResponseURL    string `json:"response_url"`
    TriggerID      string `json:"trigger_id"`
}

SlashCommand contains information about a request of the slash command

func SlashCommandParse Uses

func SlashCommandParse(r *http.Request) (s SlashCommand, err error)

SlashCommandParse will parse the request of the slash command

func (SlashCommand) ValidateToken Uses

func (s SlashCommand) ValidateToken(verificationTokens ...string) bool

ValidateToken validates verificationTokens

type SnoozeDebug Uses

type SnoozeDebug struct {
    SnoozeEndDate string `json:"snooze_end_date"`
}

type SnoozeInfo Uses

type SnoozeInfo struct {
    SnoozeEnabled   bool        `json:"snooze_enabled,omitempty"`
    SnoozeEndTime   int         `json:"snooze_endtime,omitempty"`
    SnoozeRemaining int         `json:"snooze_remaining,omitempty"`
    SnoozeDebug     SnoozeDebug `json:"snooze_debug,omitempty"`
}

type StarAddedEvent Uses

type StarAddedEvent starEvent

StarAddedEvent represents the Star added event

type StarRemovedEvent Uses

type StarRemovedEvent starEvent

StarRemovedEvent represents the Star removed event

type StarredItem Uses

type StarredItem Item

type StarredItemPagination Uses

type StarredItemPagination struct {
    Items []Item
    // contains filtered or unexported fields
}

StarredItemPagination allows for paginating over the starred items

type StarsParameters Uses

type StarsParameters struct {
    User  string
    Count int
    Page  int
}

func NewStarsParameters Uses

func NewStarsParameters() StarsParameters

NewStarsParameters initialises StarsParameters with default values

type Style Uses

type Style string
const (
    StyleDefault Style = "default"
    StylePrimary Style = "primary"
    StyleDanger  Style = "danger"
)

type SubteamCreatedEvent Uses

type SubteamCreatedEvent struct {
    Type    string    `json:"type"`
    Subteam UserGroup `json:"subteam"`
}

SubteamCreatedEvent represents the Subteam created event

type SubteamMembersChangedEvent Uses

type SubteamMembersChangedEvent struct {
    Type               string   `json:"type"`
    SubteamID          string   `json:"subteam_id"`
    TeamID             string   `json:"team_id"`
    DatePreviousUpdate JSONTime `json:"date_previous_update"`
    DateUpdate         JSONTime `json:"date_update"`
    AddedUsers         []string `json:"added_users"`
    AddedUsersCount    string   `json:"added_users_count"`
    RemovedUsers       []string `json:"removed_users"`
    RemovedUsersCount  string   `json:"removed_users_count"`
}

SubteamCreatedEvent represents the membership of an existing User Group has changed event

type SubteamSelfAddedEvent Uses

type SubteamSelfAddedEvent struct {
    Type      string `json:"type"`
    SubteamID string `json:"subteam_id"`
}

SubteamSelfAddedEvent represents an event of you have been added to a User Group

type SubteamSelfRemovedEvent Uses

type SubteamSelfRemovedEvent SubteamSelfAddedEvent

SubteamSelfRemovedEvent represents an event of you have been removed from a User Group

type SubteamUpdatedEvent Uses

type SubteamUpdatedEvent struct {
    Type    string    `json:"type"`
    Subteam UserGroup `json:"subteam"`
}

SubteamUpdatedEvent represents an event of an existing User Group has been updated or its members changed

type Team Uses

type Team struct {
    ID     string `json:"id"`
    Name   string `json:"name"`
    Domain string `json:"domain"`
}

Team contains details about a team

type TeamDomainChangeEvent Uses

type TeamDomainChangeEvent struct {
    Type   string `json:"type"`
    URL    string `json:"url"`
    Domain string `json:"domain"`
}

TeamDomainChangeEvent represents the Team domain change event

type TeamIdentity Uses

type TeamIdentity struct {
    ID            string `json:"id"`
    Name          string `json:"name"`
    Domain        string `json:"domain"`
    Image34       string `json:"image_34"`
    Image44       string `json:"image_44"`
    Image68       string `json:"image_68"`
    Image88       string `json:"image_88"`
    Image102      string `json:"image_102"`
    Image132      string `json:"image_132"`
    Image230      string `json:"image_230"`
    ImageDefault  bool   `json:"image_default"`
    ImageOriginal string `json:"image_original"`
}

type TeamInfo Uses

type TeamInfo struct {
    ID          string                 `json:"id"`
    Name        string                 `json:"name"`
    Domain      string                 `json:"domain"`
    EmailDomain string                 `json:"email_domain"`
    Icon        map[string]interface{} `json:"icon"`
}

type TeamJoinEvent Uses

type TeamJoinEvent struct {
    Type string `json:"type"`
    User User   `json:"user"`
}

TeamJoinEvent represents the Team join event

type TeamMigrationStartedEvent Uses

type TeamMigrationStartedEvent struct {
    Type string `json:"type"`
}

TeamMigrationStartedEvent represents the Team migration started event

type TeamPrefChangeEvent Uses

type TeamPrefChangeEvent struct {
    Type  string   `json:"type"`
    Name  string   `json:"name,omitempty"`
    Value []string `json:"value,omitempty"`
}

TeamPrefChangeEvent represents the Team preference change event

type TeamRenameEvent Uses

type TeamRenameEvent struct {
    Type           string `json:"type"`
    Name           string `json:"name,omitempty"`
    EventTimestamp string `json:"event_ts,omitempty"`
}

TeamRenameEvent represents the Team rename event

type TeamResponse Uses

type TeamResponse struct {
    Team TeamInfo `json:"team"`
    SlackResponse
}

type TextBlockObject Uses

type TextBlockObject struct {
    Type     string `json:"type"`
    Text     string `json:"text"`
    Emoji    bool   `json:"emoji,omitempty"`
    Verbatim bool   `json:"verbatim,omitempty"`
}

TextBlockObject defines a text element object to be used with blocks

More Information: https://api.slack.com/reference/messaging/composition-objects#text

func NewTextBlockObject Uses

func NewTextBlockObject(elementType, text string, emoji, verbatim bool) *TextBlockObject

NewTextBlockObject returns an instance of a new Text Block Object

func (TextBlockObject) MixedElementType Uses

func (s TextBlockObject) MixedElementType() MixedElementType

validateType enforces block objects for element and block parameters

type TextInputElement Uses

type TextInputElement struct {
    DialogInput
    MaxLength int              `json:"max_length,omitempty"`
    MinLength int              `json:"min_length,omitempty"`
    Hint      string           `json:"hint,omitempty"`
    Subtype   TextInputSubtype `json:"subtype"`
    Value     string           `json:"value"`
}

TextInputElement subtype of DialogInput

https://api.slack.com/dialogs#option_element_attributes#text_element_attributes

func NewTextAreaInput Uses

func NewTextAreaInput(name, label, text string) *TextInputElement

NewTextAreaInput constructor for a `textarea` input

func NewTextInput Uses

func NewTextInput(name, label, text string, options ...TextInputOption) *TextInputElement

NewTextInput constructor for a `text` input

type TextInputOption Uses

type TextInputOption func(*TextInputElement)

TextInputOption handle to extra inputs options.

type TextInputSubtype Uses

type TextInputSubtype string

TextInputSubtype Accepts email, number, tel, or url. In some form factors, optimized input is provided for this subtype.

const (
    // InputSubtypeEmail email keyboard
    InputSubtypeEmail TextInputSubtype = "email"
    // InputSubtypeNumber numeric keyboard
    InputSubtypeNumber TextInputSubtype = "number"
    // InputSubtypeTel Phone keyboard
    InputSubtypeTel TextInputSubtype = "tel"
    // InputSubtypeURL Phone keyboard
    InputSubtypeURL TextInputSubtype = "url"
)

type Topic Uses

type Topic struct {
    Value   string   `json:"value"`
    Creator string   `json:"creator"`
    LastSet JSONTime `json:"last_set"`
}

Topic contains information about the topic

type UnmarshallingErrorEvent Uses

type UnmarshallingErrorEvent struct {
    ErrorObj error
}

UnmarshallingErrorEvent is used when there are issues deconstructing a response

func (UnmarshallingErrorEvent) Error Uses

func (u UnmarshallingErrorEvent) Error() string

type User Uses

type User struct {
    ID                string         `json:"id"`
    TeamID            string         `json:"team_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"`
    IsStranger        bool           `json:"is_stranger"`
    IsAppUser         bool           `json:"is_app_user"`
    IsInvitedUser     bool           `json:"is_invited_user"`
    Has2FA            bool           `json:"has_2fa"`
    HasFiles          bool           `json:"has_files"`
    Presence          string         `json:"presence"`
    Locale            string         `json:"locale"`
    Updated           JSONTime       `json:"updated"`
    Enterprise        EnterpriseUser `json:"enterprise_user,omitempty"`
}

User contains all the information of a user

type UserChangeEvent Uses

type UserChangeEvent struct {
    Type string `json:"type"`
    User User   `json:"user"`
}

UserChangeEvent represents the user change event

type UserDetails Uses

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 UserGroup Uses

type UserGroup struct {
    ID          string         `json:"id"`
    TeamID      string         `json:"team_id"`
    IsUserGroup bool           `json:"is_usergroup"`
    Name        string         `json:"name"`
    Description string         `json:"description"`
    Handle      string         `json:"handle"`
    IsExternal  bool           `json:"is_external"`
    DateCreate  JSONTime       `json:"date_create"`
    DateUpdate  JSONTime       `json:"date_update"`
    DateDelete  JSONTime       `json:"date_delete"`
    AutoType    string         `json:"auto_type"`
    CreatedBy   string         `json:"created_by"`
    UpdatedBy   string         `json:"updated_by"`
    DeletedBy   string         `json:"deleted_by"`
    Prefs       UserGroupPrefs `json:"prefs"`
    UserCount   int            `json:"user_count"`
    Users       []string       `json:"users"`
}

UserGroup contains all the information of a user group

type UserGroupPrefs Uses

type UserGroupPrefs struct {
    Channels []string `json:"channels"`
    Groups   []string `json:"groups"`
}

UserGroupPrefs contains default channels and groups (private channels)

type UserIdentity Uses

type UserIdentity struct {
    ID       string `json:"id"`
    Name     string `json:"name"`
    Email    string `json:"email"`
    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"`
    Image512 string `json:"image_512"`
}

type UserIdentityResponse Uses

type UserIdentityResponse struct {
    User UserIdentity `json:"user"`
    Team TeamIdentity `json:"team"`
    SlackResponse
}

type UserPagination Uses

type UserPagination struct {
    Users []User
    // contains filtered or unexported fields
}

UserPagination allows for paginating over the users

func (UserPagination) Done Uses

func (UserPagination) Done(err error) bool

Done checks if the pagination has completed

func (UserPagination) Failure Uses

func (t UserPagination) Failure(err error) error

Failure checks if pagination failed.

func (UserPagination) Next Uses

func (t UserPagination) Next(ctx context.Context) (_ UserPagination, err error)

type UserPrefs Uses

type UserPrefs struct {
}

UserPrefs needs to be implemented

type UserPresence Uses

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 Uses

type UserProfile struct {
    FirstName             string                  `json:"first_name"`
    LastName              string                  `json:"last_name"`
    RealName              string                  `json:"real_name"`
    RealNameNormalized    string                  `json:"real_name_normalized"`
    DisplayName           string                  `json:"display_name"`
    DisplayNameNormalized string                  `json:"display_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"`
    BotID                 string                  `json:"bot_id,omitempty"`
    ApiAppID              string                  `json:"api_app_id,omitempty"`
    StatusText            string                  `json:"status_text,omitempty"`
    StatusEmoji           string                  `json:"status_emoji,omitempty"`
    StatusExpiration      int                     `json:"status_expiration"`
    Team                  string                  `json:"team"`
    Fields                UserProfileCustomFields `json:"fields"`
}

UserProfile contains all the information details of a given user

func (*UserProfile) FieldsMap Uses

func (profile *UserProfile) FieldsMap() map[string]UserProfileCustomField

FieldsMap returns a map of custom fields.

func (*UserProfile) SetFieldsMap Uses

func (profile *UserProfile) SetFieldsMap(m map[string]UserProfileCustomField)

SetFieldsMap sets a map of custom fields.

type UserProfileCustomField Uses

type UserProfileCustomField struct {
    Value string `json:"value"`
    Alt   string `json:"alt"`
    Label string `json:"label"`
}

UserProfileCustomField represents a custom user profile field

type UserProfileCustomFields Uses

type UserProfileCustomFields struct {
    // contains filtered or unexported fields
}

UserProfileCustomFields represents user profile's custom fields. Slack API's response data type is inconsistent so we use the struct. For detail, please see below. https://github.com/nlopes/slack/pull/298#discussion_r185159233

func (*UserProfileCustomFields) Len Uses

func (fields *UserProfileCustomFields) Len() int

Len returns the number of custom fields.

func (UserProfileCustomFields) MarshalJSON Uses

func (fields UserProfileCustomFields) MarshalJSON() ([]byte, error)

MarshalJSON is the implementation of the json.Marshaler interface.

func (*UserProfileCustomFields) SetMap Uses

func (fields *UserProfileCustomFields) SetMap(m map[string]UserProfileCustomField)

SetMap sets a map of custom fields.

func (*UserProfileCustomFields) ToMap Uses

func (fields *UserProfileCustomFields) ToMap() map[string]UserProfileCustomField

ToMap returns a map of custom fields.

func (*UserProfileCustomFields) UnmarshalJSON Uses

func (fields *UserProfileCustomFields) UnmarshalJSON(b []byte) error

UnmarshalJSON is the implementation of the json.Unmarshaler interface.

type UserSetPhotoParams Uses

type UserSetPhotoParams struct {
    CropX int
    CropY int
    CropW int
}

func NewUserSetPhotoParams Uses

func NewUserSetPhotoParams() UserSetPhotoParams

type UserTypingEvent Uses

type UserTypingEvent struct {
    Type    string `json:"type"`
    User    string `json:"user"`
    Channel string `json:"channel"`
}

UserTypingEvent represents the user typing event

type WebhookMessage Uses

type WebhookMessage struct {
    Username        string       `json:"username,omitempty"`
    IconEmoji       string       `json:"icon_emoji,omitempty"`
    IconURL         string       `json:"icon_url,omitempty"`
    Channel         string       `json:"channel,omitempty"`
    ThreadTimestamp string       `json:"thread_ts,omitempty"`
    Text            string       `json:"text,omitempty"`
    Attachments     []Attachment `json:"attachments,omitempty"`
    Parse           string       `json:"parse,omitempty"`
}

Directories

PathSynopsis
examples/blocks
examples/buttons
examples/channels
examples/connparams
examples/eventsapi
examples/files
examples/groups
examples/ims
examples/messages
examples/pins
examples/reactions
examples/slash
examples/stars
examples/team
examples/users
examples/webhooks
examples/websocket
internal/errorsx
internal/timex
slackevents
slacktest
slackutilsxPackage slackutilsx is a utility package that doesn't promise API stability.

Package slack imports 30 packages (graph) and is imported by 565 packages. Updated 2019-09-01. Refresh now. Tools for package owners.