| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Web.Slack
Description
This module exposes functionality to write bots which responds
to Events sent by the RTM API. By using the user state parameter s
complicated interactions can be established.
This basic example echos every message the bot recieves.
Other examples can be found in the
examples directory.
myConfig :: SlackConfig
myConfig = SlackConfig
{ _slackApiToken = "..." -- Specify your API token here
}
-- type SlackBot s = Event -> Slack s ()
echoBot :: SlackBot ()
echoBot (Message cid _ msg _ _ _) = sendMessage cid msg
echoBot _ = return ()
main :: IO ()
main = runBot myConfig echoBot ()- runBot :: forall s. SlackConfig -> SlackBot s -> s -> IO ()
- newtype Slack s a = Slack {
- runSlack :: StateT (SlackState s) IO a
- type SlackBot s = Event -> Slack s ()
- data SlackState s = SlackState {
- _meta :: Metainfo
- _session :: SlackSession
- _userState :: s
- _config :: SlackConfig
- userState :: forall s s. Lens (SlackState s) (SlackState s) s s
- session :: forall s. Lens' (SlackState s) SlackSession
- module Web.Slack.Types
- module Web.Slack.Config
Documentation
runBot :: forall s. SlackConfig -> SlackBot s -> s -> IO ()
newtype Slack s a
Constructors
| Slack | |
Fields
| |
Instances
| Monad (Slack s) | |
| Functor (Slack s) | |
| Applicative (Slack s) | |
| MonadIO (Slack s) | |
| MonadState (SlackState s) (Slack s) |
data SlackState s
Constructors
| SlackState | |
Fields
| |
Instances
| Show s => Show (SlackState s) | |
| MonadState (SlackState s) (Slack s) |
userState :: forall s s. Lens (SlackState s) (SlackState s) s s
session :: forall s. Lens' (SlackState s) SlackSession
module Web.Slack.Types
module Web.Slack.Config