Open binaryseed opened 3 years ago
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
:
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-0201) I'm getting rate limited errors on even the first attempt to connect. Perhaps the Slack API s now rejecting
rtm.start
altogether?/api/rtm.connect
to get connected with the Slack API nowSlack
callbackhandle_connect
to let you modify theslack
portion of the internal state, which is necessary for any following state management to function2) Trying to initialize the Slack State requires more than the example code...
id
as the key, not just a listThese could be addressed fairly easily, but I'm not sure if there other implications...