Elixir-Slack
Elixir-Slack copied to clipboard
Slack RTM breaking changes
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.startaltogether?
- I had to use the url
/api/rtm.connectto get connected with the Slack API now - I had to tweak the
Slackcallbackhandle_connectto let you modify theslackportion 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
idas 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..
https://github.com/binaryseed/Elixir-Slack/commit/e9a9395f79e0d58e3ba2dc7811f8dea33bfc9a50
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: https://github.com/BlakeWilliams/Elixir-Slack/pull/235
Likely need to do some docs tweaks alongside it...
Any news on this change? Just received a "final notice" email from Slack regarding the upcoming changes to rtm.start and rtm.connect: