This package provides a library for interacting with Twilio's API. Install using
$ cabal install twilio
Documentation is available through GitHub (for HEAD) or Hackage for the current and preceding releases.
For TwiML, see twiml-haskell.
You can create a REST API client and fetch the calls resources as follows
{-#LANGUAGE OverloadedStrings #-}
module Main where
import Control.Monad.IO.Class (liftIO)
import System.Environment (getEnv)
import Twilio
import Twilio.Calls as Calls
import Twilio.Messages
main :: IO ()
main = runTwilio' (getEnv "ACCOUNT_SID")
(getEnv "AUTH_TOKEN") $ do
-- Print Calls.
calls <- Calls.get
liftIO $ print calls
-- Send a Message.
let body = PostMessage "+14158059869" "+14158059869" "Oh, hai" Nothing
message <- post body
liftIO $ print message
Currently, our test suite makes calls to Twilio's API. This means that you will be unable to test without a Twilio account.
To test on your local machine, set the environment variables ACCOUNT_SID
,
AUTH_TOKEN
, and TEST_PHONE
. Twilio provides both test credentials and
non-test credentials. Make sure to use your non-test credentials.
Furthermore, the phone number must be able to make / receive calls, and be SMS
enabled.
The easiest way to provision a compatible phone number is to use the Twilio Website to buy a number, with Voice / SMS / MMS capabilities.
Feel free to contribute to any of the open issues, bugfixes, etc. When you think you're ready to merge, ensure the tests are passing and open a pull request. If you are adding new functionality, please include new tests as well. Finally, add yourself to the AUTHORS
file.