-- | Example slack bot responding that will respond to slash commands {-# LANGUAGE LambdaCase #-} import Data.ByteString.Char8 (pack) import Network.Linklater (slashSimple) import Network.Wai import Network.Wai.Handler.Warp (run) import Network.Wai.Middleware.SlackVerify (verifySlackRequest) import System.Environment (lookupEnv) main :: IO () main = lookupEnv "SLACK_SIGNING_SECRET" >>= \case Just secret -> do let port = 8080 putStrLn $ "Running on port " ++ show port run port $ verifySlackRequest (pack secret) $ slashSimple $ \_ -> pure "👋 " Nothing -> putStrLn $ "Expected 'SLACK_SIGNING_SECRET' environment variable.\n" ++ "See https://api.slack.com/docs/verifying-requests-from-slack"