Slack RTM breaking changes
binaryseed opened this issue ยท 7 comments
Regarding the note in the Readme about the Slack API changes upon connect (rtm.start
).. https://github.com/BlakeWilliams/Elixir-Slack#upgrading-from-0x-to-020
- I'm getting rate limited errors on even the first attempt to connect. Perhaps the Slack API s now rejecting
rtm.start
altogether?
- I had to use the url
/api/rtm.connect
to get connected with the Slack API now - I had to tweak the
Slack
callbackhandle_connect
to let you modify theslack
portion of the internal state, which is necessary for any following state management to function
- Trying to initialize the Slack State requires more than the example code...
- Slack state expects maps with the
id
as the key, not just a list - Slack state expects atom keys
These could be addressed fairly easily, but I'm not sure if there other implications...
Hi @binaryseed ! How are you doing the initializations of the state?
@binaryseed if you Slack app is new (within the last 1.5 yrs or so) it won't work. See this page for details: https://api.slack.com/methods/rtm.start
Here's the changes I made in a branch to make this work..
And to initialize channels
for example, I do this:
def handle_connect(slack, state) do
channels =
Slack.Web.Channels.list(%{token: slack.token})
|> Map.get(:channels)
|> Map.new(&{&1.id, &1})
slack =
slack
|> Map.put(:channels, channels)
{:ok, {slack, state}}
end
@binaryseed want to create a pull request? Also please make sure you run the tests to ensure there are no regressions from this change
Here we go: #235
Likely need to do some docs tweaks alongside it...