Documentation
¶
Index ¶
- Constants
- Variables
- type AppHomeOpenedEvent
- type AppMentionEvent
- type AppUninstalledEvent
- 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 UserProfileChangedEvent
- 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") // MemberJoinedChannel is sent if a member joined a channel. MemberJoinedChannel = EventsAPIType("member_joined_channel") // MemberLeftChannel is sent if a member left a 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") // MessageMetadataUpdated A message with metadata was updated MessageMetadataUpdated = EventsAPIType("message_metadata_updated") // MessageMetadataDeleted 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") // UserProfileChanged is sent if a user's profile information has changed. UserProfileChanged = EventsAPIType("user_profile_changed") )
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{}, UserProfileChanged: UserProfileChangedEvent{}, }
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 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"`
// 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 UserProfileChangedEvent ¶
type UserProfileChangedEvent struct {
User *slack.User `json:"user"`
CacheTs int `json:"cache_ts"`
Type string `json:"type"`
EventTs string `json:"event_ts"`
}
UserProfileChangedEvent is sent if access to teams was revoked for your org-wide app.
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