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
line-bot-sdk
is available on Hackage. Using the cabal-install
tool:
cabal update
cabal install line-bot-sdk
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`
See the official API documentation for more information.
- English: https://developers.line.biz/en/docs/messaging-api/overview/
- Japanese: https://developers.line.biz/ja/docs/messaging-api/overview/
{-# 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.
Please report bugs via the github issue tracker.
Thanks to the authors of servant-github, for inspiration.
See LICENSE.
Copyright © 2019âpresent Alexandre Moreno