Servant library for building LINE chatbots.

Features:

Servant combinator LineReqBody for validation of request signatures using the channel secret. This is required to distinguish legitimate requests sent by LINE from malicious requests

Bindings for (most) of the Messaging APIs

Installation

From Hackage

line-bot-sdk is available on Hackage. Using the cabal-install tool:

cabal update cabal install line-bot-sdk

From source

Building from source can be done using stack or cabal:

git clone github.com/moleike/line-bot-sdk.git cd line-bot-sdk stack install # Alternatively, `cabal install`

Documentation

The documentation for the latest release is available on Hackage.

Usage

{-# LANGUAGE DataKinds #-} {-# LANGUAGE OverloadedStrings #-} import Data.String (fromString) import Line.Bot.Client import Line.Bot.Types import System.Environment (getEnv) getProfiles :: Id Room -> Line [Profile] getProfiles roomId = do userIds <- getRoomMemberUserIds roomId sequence $ getRoomMemberProfile roomId <$> userIds main = do token <- fromString <$> getEnv "CHANNEL_TOKEN" result <- runLine (getProfiles "U4af4980629...") token case result of Left err -> print err Right profile -> print profile

See the examples/ directory for more comprehensive examples.

Contribute

Please report bugs via the github issue tracker.

Acknowledgments

Thanks to the authors of servant-github, for inspiration.