Documentation ¶
Index ¶
- Constants
- Variables
- type AppHomeOpenedEvent
- type AppMentionEvent
- type AppUninstalledEvent
- type Block
- type ChallengeResponse
- type ChannelArchiveEvent
- type ChannelCreatedEvent
- type ChannelCreatedInfo
- type ChannelDeletedEvent
- type ChannelIDChangedEvent
- type ChannelLeftEvent
- type ChannelRenameEvent
- type ChannelRenameInfo
- type ChannelUnarchiveEvent
- type Comment
- type Config
- type Edited
- type EmojiChangedEvent
- type EventWorkflowStep
- type EventsAPIAppRateLimited
- type EventsAPICallbackEvent
- type EventsAPIEvent
- type EventsAPIInnerEvent
- type EventsAPIType
- type EventsAPIURLVerificationEvent
- type File
- type FileChangeEvent
- type FileDeletedEvent
- type FileEventFile
- type FileSharedEvent
- type FileUnsharedEvent
- type GridMigrationFinishedEvent
- type GridMigrationStartedEvent
- type GroupArchiveEvent
- type GroupDeletedEvent
- type GroupLeftEvent
- type GroupRenameEvent
- type GroupRenameInfo
- type GroupUnarchiveEvent
- type Icon
- type Item
- type ItemMessage
- type JSONTime
- type LinkSharedEvent
- type MemberJoinedChannelEvent
- type MemberLeftChannelEvent
- type MessageAction
- type MessageActionEntity
- type MessageActionResponse
- type MessageEvent
- type MessageMetadataDeletedEvent
- type MessageMetadataPostedEvent
- type MessageMetadataUpdatedEvent
- type Option
- type PinAddedEvent
- type PinRemovedEvent
- type ReactionAddedEvent
- type ReactionRemovedEvent
- type SharedLinks
- type TeamAccessGrantedEvent
- type TeamAccessRevokedEvent
- type TeamJoinEvent
- type TokenComparator
- type TokensRevokedEvent
- type WorkflowStepExecuteEvent
Constants ¶
const ( // AppMention is an Events API subscribable event AppMention = EventsAPIType("app_mention") // AppHomeOpened Your Slack app home was opened AppHomeOpened = EventsAPIType("app_home_opened") // AppUninstalled Your Slack app was uninstalled. AppUninstalled = EventsAPIType("app_uninstalled") // ChannelCreated is sent when a new channel is created. ChannelCreated = EventsAPIType("channel_created") // ChannelDeleted is sent when a channel is deleted. ChannelDeleted = EventsAPIType("channel_deleted") // ChannelArchive is sent when a channel is archived. ChannelArchive = EventsAPIType("channel_archive") // ChannelUnarchive is sent when a channel is unarchived. ChannelUnarchive = EventsAPIType("channel_unarchive") // ChannelLeft is sent when a channel is left. ChannelLeft = EventsAPIType("channel_left") // ChannelRename is sent when a channel is rename. ChannelRename = EventsAPIType("channel_rename") // ChannelIDChanged is sent when a channel identifier is changed. ChannelIDChanged = EventsAPIType("channel_id_changed") // GroupDeleted is sent when a group is deleted. GroupDeleted = EventsAPIType("group_deleted") // GroupArchive is sent when a group is archived. GroupArchive = EventsAPIType("group_archive") // GroupUnarchive is sent when a group is unarchived. GroupUnarchive = EventsAPIType("group_unarchive") // GroupLeft is sent when a group is left. GroupLeft = EventsAPIType("group_left") // GroupRename is sent when a group is renamed. GroupRename = EventsAPIType("group_rename") // FileChange is sent when a file is changed. FileChange = EventsAPIType("file_change") // FileDeleted is sent when a file is deleted. FileDeleted = EventsAPIType("file_deleted") FileShared = EventsAPIType("file_shared") FileUnshared = EventsAPIType("file_unshared") // GridMigrationFinished An enterprise grid migration has finished on this workspace. GridMigrationFinished = EventsAPIType("grid_migration_finished") // GridMigrationStarted An enterprise grid migration has started on this workspace. GridMigrationStarted = EventsAPIType("grid_migration_started") LinkShared = EventsAPIType("link_shared") // Message A message was posted to a channel, private channel (group), im, or mim Message = EventsAPIType("message") // Member Joined Channel MemberJoinedChannel = EventsAPIType("member_joined_channel") // Member Left Channel MemberLeftChannel = EventsAPIType("member_left_channel") // PinAdded An item was pinned to a channel PinAdded = EventsAPIType("pin_added") // PinRemoved An item was unpinned from a channel PinRemoved = EventsAPIType("pin_removed") // ReactionAdded An reaction was added to a message ReactionAdded = EventsAPIType("reaction_added") // ReactionRemoved An reaction was removed from a message ReactionRemoved = EventsAPIType("reaction_removed") // TeamJoin A new user joined the workspace TeamJoin = EventsAPIType("team_join") // TokensRevoked APP's API tokes are revoked TokensRevoked = EventsAPIType("tokens_revoked") // EmojiChanged A custom emoji has been added or changed EmojiChanged = EventsAPIType("emoji_changed") // WorkflowStepExecute Happens, if a workflow step of your app is invoked WorkflowStepExecute = EventsAPIType("workflow_step_execute") // MessageMetadataPosted A message with metadata was posted MessageMetadataPosted = EventsAPIType("message_metadata_posted") // MessageMetadataPosted A message with metadata was updated MessageMetadataUpdated = EventsAPIType("message_metadata_updated") // MessageMetadataPosted A message with metadata was deleted MessageMetadataDeleted = EventsAPIType("message_metadata_deleted") // TeamAccessGranted is sent if access to teams was granted for your org-wide app. TeamAccessGranted = EventsAPIType("team_access_granted") // TeamAccessrevoked is sent if access to teams was revoked for your org-wide app. TeamAccessrevoked = EventsAPIType("team_access_revoked") )
const ( // CallbackEvent is the "outer" event of an EventsAPI event. CallbackEvent = "event_callback" // URLVerification is an event used when configuring your EventsAPI app URLVerification = "url_verification" // AppRateLimited indicates your app's event subscriptions are being rate limited AppRateLimited = "app_rate_limited" )
Variables ¶
var EventsAPIEventMap = map[string]interface{}{ CallbackEvent: EventsAPICallbackEvent{}, URLVerification: EventsAPIURLVerificationEvent{}, AppRateLimited: EventsAPIAppRateLimited{}, }
EventsAPIEventMap maps OUTER Event API events to their corresponding struct implementations. The structs should be instances of the unmarshalling target for the matching event type.
var EventsAPIInnerEventMapping = map[EventsAPIType]interface{}{ AppMention: AppMentionEvent{}, AppHomeOpened: AppHomeOpenedEvent{}, AppUninstalled: AppUninstalledEvent{}, ChannelCreated: ChannelCreatedEvent{}, ChannelDeleted: ChannelDeletedEvent{}, ChannelArchive: ChannelArchiveEvent{}, ChannelUnarchive: ChannelUnarchiveEvent{}, ChannelLeft: ChannelLeftEvent{}, ChannelRename: ChannelRenameEvent{}, ChannelIDChanged: ChannelIDChangedEvent{}, FileChange: FileChangeEvent{}, FileDeleted: FileDeletedEvent{}, FileShared: FileSharedEvent{}, FileUnshared: FileUnsharedEvent{}, GroupDeleted: GroupDeletedEvent{}, GroupArchive: GroupArchiveEvent{}, GroupUnarchive: GroupUnarchiveEvent{}, GroupLeft: GroupLeftEvent{}, GroupRename: GroupRenameEvent{}, GridMigrationFinished: GridMigrationFinishedEvent{}, GridMigrationStarted: GridMigrationStartedEvent{}, LinkShared: LinkSharedEvent{}, Message: MessageEvent{}, MemberJoinedChannel: MemberJoinedChannelEvent{}, MemberLeftChannel: MemberLeftChannelEvent{}, PinAdded: PinAddedEvent{}, PinRemoved: PinRemovedEvent{}, ReactionAdded: ReactionAddedEvent{}, ReactionRemoved: ReactionRemovedEvent{}, TeamJoin: TeamJoinEvent{}, TokensRevoked: TokensRevokedEvent{}, EmojiChanged: EmojiChangedEvent{}, WorkflowStepExecute: WorkflowStepExecuteEvent{}, MessageMetadataPosted: MessageMetadataPostedEvent{}, MessageMetadataUpdated: MessageMetadataUpdatedEvent{}, MessageMetadataDeleted: MessageMetadataDeletedEvent{}, TeamAccessGranted: TeamAccessGrantedEvent{}, TeamAccessrevoked: TeamAccessRevokedEvent{}, }
EventsAPIInnerEventMapping maps INNER Event API events to their corresponding struct implementations. The structs should be instances of the unmarshalling target for the matching event type.
Functions ¶
This section is empty.
Types ¶
type AppHomeOpenedEvent ¶
type AppHomeOpenedEvent struct { Type string `json:"type"` User string `json:"user"` Channel string `json:"channel"` EventTimeStamp string `json:"event_ts"` Tab string `json:"tab"` View slack.View `json:"view"` }
AppHomeOpenedEvent Your Slack app home was opened.
type AppMentionEvent ¶
type AppMentionEvent struct { Type string `json:"type"` User string `json:"user"` Text string `json:"text"` TimeStamp string `json:"ts"` ThreadTimeStamp string `json:"thread_ts"` Channel string `json:"channel"` EventTimeStamp string `json:"event_ts"` // When Message comes from a channel that is shared between workspaces UserTeam string `json:"user_team,omitempty"` SourceTeam string `json:"source_team,omitempty"` // BotID is filled out when a bot triggers the app_mention event BotID string `json:"bot_id,omitempty"` }
AppMentionEvent is an (inner) EventsAPI subscribable event.
type AppUninstalledEvent ¶
type AppUninstalledEvent struct {
Type string `json:"type"`
}
AppUninstalledEvent Your Slack app was uninstalled.
type Block ¶
type Block struct { Type string `json:"type,omitempty"` BlockID string `json:"block_id,omitempty"` Text struct { Type string `json:"type,omitempty"` Text string `json:"text,omitempty"` Verbatim bool `json:"verbatim,omitempty"` } `json:"text,omitempty"` Fields []struct { Type string `json:"type,omitempty"` Text string `json:"text,omitempty"` Verbatim bool `json:"verbatim,omitempty"` } `json:"fields,omitempty"` }
Block type that is associatedwith a formatted message
type ChallengeResponse ¶
type ChallengeResponse struct {
Challenge string
}
ChallengeResponse is a response to a EventsAPIEvent URLVerification challenge
type ChannelArchiveEvent ¶
type ChannelArchiveEvent struct { Type string `json:"type"` Channel string `json:"channel"` User string `json:"user"` EventTimestamp string `json:"event_ts"` }
ChannelArchiveEvent represents the Channel archive event
type ChannelCreatedEvent ¶
type ChannelCreatedEvent struct { Type string `json:"type"` Channel ChannelCreatedInfo `json:"channel"` EventTimestamp string `json:"event_ts"` }
ChannelCreatedEvent represents the Channel created event
type ChannelCreatedInfo ¶
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 ¶
type ChannelDeletedEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
ChannelDeletedEvent represents the Channel deleted event
type ChannelIDChangedEvent ¶
type ChannelIDChangedEvent struct { Type string `json:"type"` OldChannelID string `json:"old_channel_id"` NewChannelID string `json:"new_channel_id"` EventTimestamp string `json:"event_ts"` }
ChannelIDChangedEvent represents the Channel identifier changed event
type ChannelLeftEvent ¶
type ChannelLeftEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
ChannelLeftEvent represents the Channel left event
type ChannelRenameEvent ¶
type ChannelRenameEvent struct { Type string `json:"type"` Channel ChannelRenameInfo `json:"channel"` EventTimestamp string `json:"event_ts"` }
ChannelRenameEvent represents the Channel rename event
type ChannelRenameInfo ¶
type ChannelRenameInfo struct { ID string `json:"id"` Name string `json:"name"` Created int `json:"created"` }
ChannelRenameInfo represents the information associated with the Channel rename event
type ChannelUnarchiveEvent ¶
type ChannelUnarchiveEvent struct { Type string `json:"type"` Channel string `json:"channel"` User string `json:"user"` EventTimestamp string `json:"event_ts"` }
ChannelUnarchiveEvent represents the Channel unarchive event
type Comment ¶
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 EmojiChangedEvent ¶
type EmojiChangedEvent struct { Type string `json:"type"` Subtype string `json:"subtype"` EventTimeStamp string `json:"event_ts"` // filled out when custom emoji added Name string `json:"name,omitempty"` // filled out when custom emoji removed Names []string `json:"names,omitempty"` // filled out when custom emoji renamed OldName string `json:"old_name,omitempty"` NewName string `json:"new_name,omitempty"` // filled out when custom emoji added or renamed Value string `json:"value,omitempty"` }
EmojiChangedEvent is the event of custom emoji has been added or changed
type EventWorkflowStep ¶
type EventWorkflowStep struct { WorkflowStepExecuteID string `json:"workflow_step_execute_id"` WorkflowID string `json:"workflow_id"` WorkflowInstanceID string `json:"workflow_instance_id"` StepID string `json:"step_id"` Inputs *slack.WorkflowStepInputs `json:"inputs,omitempty"` Outputs *[]slack.WorkflowStepOutput `json:"outputs,omitempty"` }
type EventsAPIAppRateLimited ¶
type EventsAPIAppRateLimited struct { Type string `json:"type"` Token string `json:"token"` TeamID string `json:"team_id"` MinuteRateLimited int `json:"minute_rate_limited"` APIAppID string `json:"api_app_id"` }
EventsAPIAppRateLimited indicates your app's event subscriptions are being rate limited
type EventsAPICallbackEvent ¶
type EventsAPICallbackEvent struct { Type string `json:"type"` Token string `json:"token"` TeamID string `json:"team_id"` APIAppID string `json:"api_app_id"` EnterpriseID string `json:"enterprise_id"` InnerEvent *json.RawMessage `json:"event"` AuthedUsers []string `json:"authed_users"` AuthedTeams []string `json:"authed_teams"` EventID string `json:"event_id"` EventTime int `json:"event_time"` EventContext string `json:"event_context"` }
EventsAPICallbackEvent is the main (outer) EventsAPI event.
type EventsAPIEvent ¶
type EventsAPIEvent struct { Token string `json:"token"` TeamID string `json:"team_id"` Type string `json:"type"` APIAppID string `json:"api_app_id"` EnterpriseID string `json:"enterprise_id"` Data interface{} InnerEvent EventsAPIInnerEvent }
EventsAPIEvent is the base EventsAPIEvent
func ParseEvent ¶
func ParseEvent(rawEvent json.RawMessage, opts ...Option) (EventsAPIEvent, error)
ParseEvent parses the outer and inner events (if applicable) of an events api event returning a EventsAPIEvent type. If the event is a url_verification event, the inner event is empty.
type EventsAPIInnerEvent ¶
type EventsAPIInnerEvent struct { Type string `json:"type"` Data interface{} }
EventsAPIInnerEvent the inner event of a EventsAPI event_callback Event.
type EventsAPIType ¶
type EventsAPIType string
type EventsAPIURLVerificationEvent ¶
type EventsAPIURLVerificationEvent struct { Token string `json:"token"` Challenge string `json:"challenge"` Type string `json:"type"` }
EventsAPIURLVerificationEvent received when configuring a EventsAPI driven app
type File ¶
type File struct { ID string `json:"id"` Created int `json:"created"` Timestamp int `json:"timestamp"` Name string `json:"name"` Title string `json:"title"` Mimetype string `json:"mimetype"` Filetype string `json:"filetype"` PrettyType string `json:"pretty_type"` User string `json:"user"` Editable bool `json:"editable"` Size int `json:"size"` Mode string `json:"mode"` IsExternal bool `json:"is_external"` ExternalType string `json:"external_type"` IsPublic bool `json:"is_public"` DisplayAsBot bool `json:"display_as_bot"` Username string `json:"username"` URLPrivate string `json:"url_private"` URLPrivateDownload string `json:"url_private_download"` Thumb64 string `json:"thumb_64"` Thumb80 string `json:"thumb_80"` Thumb360 string `json:"thumb_360"` 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"` Thumb160 string `json:"thumb_160"` Thumb720 string `json:"thumb_720"` Thumb720W int `json:"thumb_720_w"` Thumb720H int `json:"thumb_720_h"` Thumb800 string `json:"thumb_800"` Thumb800W int `json:"thumb_800_w"` Thumb800H int `json:"thumb_800_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"` ImageExifRotation int `json:"image_exif_rotation"` OriginalW int `json:"original_w"` OriginalH int `json:"original_h"` Permalink string `json:"permalink"` PermalinkPublic string `json:"permalink_public"` }
File is a file upload
type FileChangeEvent ¶
type FileChangeEvent struct { Type string `json:"type"` FileID string `json:"file_id"` File FileEventFile `json:"file"` }
FileChangeEvent represents the information associated with the File change event.
type FileDeletedEvent ¶
type FileDeletedEvent struct { Type string `json:"type"` FileID string `json:"file_id"` EventTimestamp string `json:"event_ts"` }
FileDeletedEvent represents the information associated with the File deleted event.
type FileEventFile ¶
type FileEventFile struct {
ID string `json:"id"`
}
FileEventFile represents information on the specific file being shared in a file-related Slack event.
type FileSharedEvent ¶
type FileSharedEvent struct {}
FileSharedEvent represents the information associated with the File shared event.
type FileUnsharedEvent ¶
type FileUnsharedEvent struct {}
FileUnsharedEvent represents the information associated with the File unshared event.
type GridMigrationFinishedEvent ¶
type GridMigrationFinishedEvent struct { Type string `json:"type"` EnterpriseID string `json:"enterprise_id"` }
GridMigrationFinishedEvent An enterprise grid migration has finished on this workspace.
type GridMigrationStartedEvent ¶
type GridMigrationStartedEvent struct { Type string `json:"type"` EnterpriseID string `json:"enterprise_id"` }
GridMigrationStartedEvent An enterprise grid migration has started on this workspace.
type GroupArchiveEvent ¶
type GroupArchiveEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
GroupArchiveEvent represents the Group archive event
type GroupDeletedEvent ¶
type GroupDeletedEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
GroupDeletedEvent represents the Group deleted event
type GroupLeftEvent ¶
type GroupLeftEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
GroupLeftEvent represents the Group left event
type GroupRenameEvent ¶
type GroupRenameEvent struct { Type string `json:"type"` Channel GroupRenameInfo `json:"channel"` EventTimestamp string `json:"event_ts"` }
GroupRenameEvent represents the Group rename event
type GroupRenameInfo ¶
type GroupRenameInfo struct { ID string `json:"id"` Name string `json:"name"` Created int `json:"created"` }
GroupRenameInfo represents the information associated with the Group rename event
type GroupUnarchiveEvent ¶
type GroupUnarchiveEvent struct { Type string `json:"type"` Channel string `json:"channel"` EventTimestamp string `json:"event_ts"` }
GroupUnarchiveEvent represents the Group unarchive event
type Icon ¶
type Icon struct { IconURL string `json:"icon_url,omitempty"` IconEmoji string `json:"icon_emoji,omitempty"` }
Icon is used for bot messages
type Item ¶
type Item struct { Type string `json:"type"` Channel string `json:"channel,omitempty"` Message *ItemMessage `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.
type ItemMessage ¶
type ItemMessage struct { Type string `json:"type"` User string `json:"user"` Text string `json:"text"` Timestamp string `json:"ts"` PinnedTo []string `json:"pinned_to"` ReplaceOriginal bool `json:"replace_original"` DeleteOriginal bool `json:"delete_original"` }
ItemMessage is the event message
type JSONTime ¶
type JSONTime int64
JSONTime exists so that we can have a String method converting the date
type LinkSharedEvent ¶
type LinkSharedEvent struct { // MessageTimeStamp can be both a numeric timestamp if the LinkSharedEvent corresponds to a sent // message and (contrary to the field name) a uuid if the LinkSharedEvent is generated in the // compose text area. }
LinkSharedEvent A message was posted containing one or more links relevant to your application
type MemberJoinedChannelEvent ¶
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"` EventTimestamp string `json:"event_ts"` }
MemberJoinedChannelEvent A member joined a public or private channel
type MemberLeftChannelEvent ¶
type MemberLeftChannelEvent struct { Type string `json:"type"` User string `json:"user"` Channel string `json:"channel"` ChannelType string `json:"channel_type"` Team string `json:"team"` EventTimestamp string `json:"event_ts"` }
MemberLeftChannelEvent A member left a public or private channel
type MessageAction ¶
type MessageAction struct { Type string `json:"type"` Actions []slack.AttachmentAction `json:"actions"` CallbackID string `json:"callback_id"` Team MessageActionEntity `json:"team"` Channel MessageActionEntity `json:"channel"` User MessageActionEntity `json:"user"` ActionTimestamp json.Number `json:"action_ts"` MessageTimestamp json.Number `json:"message_ts"` AttachmentID json.Number `json:"attachment_id"` Token string `json:"token"` Message slack.Message `json:"message"` OriginalMessage slack.Message `json:"original_message"` ResponseURL string `json:"response_url"` TriggerID string `json:"trigger_id"` }
func ParseActionEvent ¶
func ParseActionEvent(payloadString string, opts ...Option) (MessageAction, error)
type MessageActionEntity ¶
type MessageActionResponse ¶
type MessageEvent ¶
type MessageEvent struct { // Basic Message Event - https://api.slack.com/events/message ClientMsgID string `json:"client_msg_id"` Type string `json:"type"` User string `json:"user"` Text string `json:"text"` ThreadTimeStamp string `json:"thread_ts"` TimeStamp string `json:"ts"` Channel string `json:"channel"` ChannelType string `json:"channel_type"` EventTimeStamp string `json:"event_ts"` Blocks []Block `json:"blocks,omitempty"` // When Message comes from a channel that is shared between workspaces UserTeam string `json:"user_team,omitempty"` SourceTeam string `json:"source_team,omitempty"` // Edited Message Message *MessageEvent `json:"message,omitempty"` PreviousMessage *MessageEvent `json:"previous_message,omitempty"` Edited *Edited `json:"edited,omitempty"` // Message Subtypes SubType string `json:"subtype,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"` Upload bool `json:"upload"` Files []File `json:"files"` Attachments []slack.Attachment `json:"attachments,omitempty"` // Root is the message that was broadcast to the channel when the SubType is // thread_broadcast. If this is not a thread_broadcast message event, this // value is nil. Root *MessageEvent `json:"root"` }
MessageEvent occurs when a variety of types of messages has been posted. Parse ChannelType to see which if ChannelType = "group", this is a private channel message if ChannelType = "channel", this message was sent to a channel if ChannelType = "im", this is a private message if ChannelType = "mim", A message was posted in a multiparty direct message channel TODO: Improve this so that it is not required to manually parse ChannelType
func (MessageEvent) IsEdited ¶
func (e MessageEvent) IsEdited() bool
IsEdited checks if the MessageEvent is caused by an edit
type MessageMetadataDeletedEvent ¶
type MessageMetadataDeletedEvent struct { Type string `json:"type"` ChannelId string `json:"channel_id"` EventTimestamp string `json:"event_ts"` PreviousMetadata *slack.SlackMetadata `json:"previous_metadata"` AppId string `json:"app_id"` BotId string `json:"bot_id"` UserId string `json:"user_id"` TeamId string `json:"team_id"` MessageTimestamp string `json:"message_ts"` DeletedTimestamp string `json:"deleted_ts"` }
MessageMetadataDeletedEvent is sent, if a message with metadata is deleted
type MessageMetadataPostedEvent ¶
type MessageMetadataPostedEvent struct { Type string `json:"type"` AppId string `json:"app_id"` BotId string `json:"bot_id"` UserId string `json:"user_id"` TeamId string `json:"team_id"` ChannelId string `json:"channel_id"` Metadata *slack.SlackMetadata `json:"metadata"` MessageTimestamp string `json:"message_ts"` EventTimestamp string `json:"event_ts"` }
MessageMetadataPostedEvent is sent, if a message with metadata is posted
type MessageMetadataUpdatedEvent ¶
type MessageMetadataUpdatedEvent struct { Type string `json:"type"` ChannelId string `json:"channel_id"` EventTimestamp string `json:"event_ts"` PreviousMetadata *slack.SlackMetadata `json:"previous_metadata"` AppId string `json:"app_id"` BotId string `json:"bot_id"` UserId string `json:"user_id"` TeamId string `json:"team_id"` MessageTimestamp string `json:"message_ts"` Metadata *slack.SlackMetadata `json:"metadata"` }
MessageMetadataUpdatedEvent is sent, if a message with metadata is deleted
type Option ¶
type Option func(cfg *Config)
func OptionNoVerifyToken ¶
func OptionNoVerifyToken() Option
OptionNoVerifyToken skips the check of the Slack verification token
func OptionVerifyToken ¶
func OptionVerifyToken(v verifier) Option
type PinAddedEvent ¶
type PinAddedEvent pinEvent
PinAddedEvent An item was pinned to a channel - https://api.slack.com/events/pin_added
type PinRemovedEvent ¶
type PinRemovedEvent pinEvent
PinRemovedEvent An item was unpinned from a channel - https://api.slack.com/events/pin_removed
type ReactionAddedEvent ¶
type ReactionAddedEvent reactionEvent
ReactionAddedEvent An reaction was added to a message - https://api.slack.com/events/reaction_added
type ReactionRemovedEvent ¶
type ReactionRemovedEvent reactionEvent
ReactionRemovedEvent An reaction was removed from a message - https://api.slack.com/events/reaction_removed
type SharedLinks ¶
type SharedLinks struct {}
type TeamAccessGrantedEvent ¶
TeamAccessGrantedEvent is sent if access to teams was granted for your org-wide app.
type TeamAccessRevokedEvent ¶
TeamAccessRevokedEvent is sent if access to teams was revoked for your org-wide app.
type TeamJoinEvent ¶
type TeamJoinEvent struct { Type string `json:"type"` User *slack.User `json:"user"` EventTimestamp string `json:"event_ts"` }
TeamJoinEvent A new member joined a workspace - https://api.slack.com/events/team_join
type TokenComparator ¶
type TokenComparator struct {
VerificationToken string
}
func (TokenComparator) Verify ¶
func (c TokenComparator) Verify(t string) bool
type TokensRevokedEvent ¶
type TokensRevokedEvent struct { Type string `json:"type"` Tokens tokens `json:"tokens"` EventTimestamp string `json:"event_ts"` }
TokensRevokedEvent APP's API tokens are revoked - https://api.slack.com/events/tokens_revoked
type WorkflowStepExecuteEvent ¶
type WorkflowStepExecuteEvent struct { Type string `json:"type"` CallbackID string `json:"callback_id"` WorkflowStep EventWorkflowStep `json:"workflow_step"` EventTimestamp string `json:"event_ts"` }
WorkflowStepExecuteEvent is fired, if a workflow step of your app is invoked