You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 22, 2025. It is now read-only.
I noticed that my Bot had problems with ephemeral messages, in particular with unfolding URLs.
How it can be reproduced
bot posts an URL to a channel
slackbot unfolds it
bot posts the same URL to the channel
slackbot sends message: "Pssst! I didn\u2019t unfurl <https:\/\/example.com> because it was already shared in this channel quite recently (within the last hour) and I didn\u2019t want to clutter things up."
my bot responds with a Sorry @slackbot, I don't understand that command!
now slackbot responds that he didn't understand
...there is a pingpong
Possible solution
The message hook should filter out those ephemeral messages. I think it will be something like:
lib/slack-ruby-bot/hooks/message.rb:
moduleSlackRubyBotmoduleHooksclassMessagedefcall(client,data)returnifmessage_to_self_not_allowed? && message_to_self?(client,data)returnifephemeral_message?(data)# this would be newdata.text=data.text.stripifdata.textresult=child_command_classes.detect{ |d| d.invoke(client,data)}result ||= built_in_command_classes.detect{ |d| d.invoke(client,data)}result ||= SlackRubyBot::Commands::Unknown.tap{ |d| d.invoke(client,data)}resultend
...
privatedefephemeral_message?(data)data.is_ephemeral# and you could also check for the data.subtype == 'bot_message'end
I would be willing to contribute this fix if you like the solution.
I noticed that my Bot had problems with ephemeral messages, in particular with unfolding URLs.
How it can be reproduced
"Pssst! I didn\u2019t unfurl <https:\/\/example.com> because it was already shared in this channel quite recently (within the last hour) and I didn\u2019t want to clutter things up."Sorry @slackbot, I don't understand that command!Possible solution
The message hook should filter out those ephemeral messages. I think it will be something like:
lib/slack-ruby-bot/hooks/message.rb:I would be willing to contribute this fix if you like the solution.