Slacks
An Elixir Slack client and bot.
Quick Start
defmodule QuoteBot do
use Slack.Bot, token: "xoxb-..."
@impl Slack.Bot
def init(state), do: {:ok, state}
@impl Slack.Bot
def handle_event(event = %{type: "message"}, bot, _state) do
text = Map.get(event, :text) || get_in(event, [:message, :text])
Slack.post_message(
bot.token,
event.channel,
text |> Enum.split("\n") |> Enum.map(&("> " <> &1)) |> Enum.join("\n"),
thread: event.ts
)
:ok
end
def handle_event(_, _, _), do: :ok
endInstallation
The package can be installed by adding slacks
to your list of dependencies in mix.exs:
def deps do
[
{:slacks, "~> 0.0.2"}
]
endThe docs can be found at https://hexdocs.pm/slacks.
Changelog
0.0.2 (2019-06-21)
New features:
- Basic attachments.
- Basic channel.
- SectionBlocks (new Slack API)
Slack.post_ephemeral/5for posting ephemeral messages.Slack.chat_update/5for updating messages.
Refactor:
- JSON API used.
- Empty fields filtered out of API calls.
0.0.1 (2019-04-30)
New features:
- Simple/naive Slack bot.
Slack.post_message/4for posting messages.Slack.upload_file/4for uploading files.
License
Slacks source code is released under the MIT License. Check LICENSE file for more information.