Erlang の好い感じの Slack client が無かったので書いた、のだが Clojerl で書いたので Erlang からは使へない。
README に書いた通り gen_event
bahaviour を書けば Slack と會話出來る。
(ns example-bot.handler1) (erlang.core/behaviours gen_event) (defn init [{:keys [name] :as args}] #erl[:ok args]) (defn handle_call [_ state] #erl[:ok :ok state]) (def handle_event (fn* ([#erl[:receive-msg #as(msg #erl{"channel" channel "text" text "type" "message"})] #as(state #erl{:name name})] ; Handle msg here. #erl[:ok state]) ([_ state] #erl[:ok state])))
gun を使って WebSocket で繋いでゐる。であるから WebSocket が通る通信路が要る。
Elixir には好い Slack client が在るので其れを使ひませう。