Comments (3)
func newMessageEvent(slacker *Slacker, evt interface{}, req *socketmode.Request) *MessageEvent {
var me *MessageEvent
switch ev := evt.(type) {
case *slackevents.MessageEvent:
me = &MessageEvent{
Channel: ev.Channel,
ChannelName: getChannelName(slacker, ev.Channel),
User: ev.User,
UserName: getUserName(slacker, ev.User),
Text: ev.Text,
Data: evt,
Type: ev.Type,
TimeStamp: ev.TimeStamp,
ThreadTimeStamp: ev.ThreadTimeStamp,
BotID: ev.BotID,
}
case *slackevents.AppMentionEvent:
me = &MessageEvent{
Channel: ev.Channel,
ChannelName: getChannelName(slacker, ev.Channel),
User: ev.User,
UserName: getUserName(slacker, ev.User),
Text: ev.Text,
Data: evt,
Type: ev.Type,
TimeStamp: ev.TimeStamp,
ThreadTimeStamp: ev.ThreadTimeStamp,
BotID: ev.BotID,
}
case *slack.SlashCommand:
me = &MessageEvent{
Channel: ev.ChannelID,
ChannelName: ev.ChannelName,
User: ev.UserID,
UserName: ev.UserName,
Text: fmt.Sprintf("%s %s", ev.Command[1:], ev.Text),
Data: req,
Type: req.Type,
}
}
from slacker.
I was able to work around this by changing the definition of MessageEvent to the following:
`type MessageEvent struct {
// Channel ID where the message was sent
Channel string
// ChannelName where the message was sent
ChannelName string
// User ID of the sender
User string
// UserName of the the sender
UserName string
// Text is the unalterted text of the message, as returned by Slack
Text string
// TimeStamp is the message timestamp. For events that do not support
// threading (eg. slash commands) this will be unset.
// will be left unset.
TimeStamp string
// ThreadTimeStamp is the message thread timestamp. For events that do not
// support threading (eg. slash commands) this will be unset.
ThreadTimeStamp string
// Data is the raw event data returned from slack. Using Type, you can assert
// this into a slackevents *Event struct.
Data interface{}
// Type is the type of the event, as returned by Slack. For instance,
// `app_mention` or `message`
Type string
// BotID of the bot that sent this message. If a bot did not send this
// message, this will be an empty string.
BotID string
Event interface{}
}`
This allows me to now access the original event through the botCtx.Event().Event
from slacker.
This should now be resolved in this release https://github.com/shomali11/slacker/releases/tag/v2.0.0-alpha1
from slacker.
Related Issues (20)
- How to retrieve raw payload / get the team_id? HOT 1
- How can get channel name from MessageEvent? HOT 1
- Create releases for Slacker HOT 2
- Allow ability to define a Default Inner Event Handler HOT 5
- panic: runtime error when adding DispatchActionConfig.TriggerActionsOn NewPlainTextInputBlockElement HOT 2
- How do you handle slash commands HOT 3
- Interactive callback no longer works in version 1.4.0 HOT 4
- Please don't break your API for an aesthetic change without going to v2... HOT 2
- Improve adherence to commit message format
- Define release process
- Remove fmt.Print usage HOT 1
- Regression of issue #84, cannot use library to read/respond to message events from other bots HOT 2
- Multiline command not working HOT 2
- V2: WithLogger not used when Debug mode set using WithDebug HOT 3
- Provide ability to use a slog logger HOT 1
- [Example] Request an example to OpenView Modal (Pop Up Window) using Slacker in Interactive Socket Mode HOT 2
- How to bind a command to all messages? HOT 5
- Provide ability to handle block_suggestion events appropriatly HOT 2
- BotModeIgnoreApp fails to handle the official SlackBot HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slacker.