riemann.twilio
Forwards events to Twilio
add-key-body
(add-key-body opts-key body-key msg-opts result)Add the opts-key value from msg-opts (if exists) into the body-key in result. Returns result.
get-form-params
(get-form-params msg-opts)construct the form-params request parameter from msg-opts
twilio
(twilio)(twilio opts)(twilio twilio-opts msg-opts)Returns a messenger, which is a function invoked with a phone number or a sequence of phone numbers and returns a stream. That stream is a function which takes a single event, or a sequence of events, and sends a message about them.
(def messenger (twilio))
(def text (messenger "+15005550006" "+15005550006"))
This messenger sends sms out via twilio using the twilio http api. When used it outputs the http response recieved from twilio.
(changed :state
#(info "twilio response" (text %)))
The first argument is a map of the twilio options :account and :key. The second argument is a map of default message option.
(def text (twilio {:account "id" :service-key "key"}
{:from "+15005550006"}))
Message options can be :
:fromA twilio phone number:messaging-service-sidThe 34 character unique id of the Messaging Service you want to associate with this Message:media-urlThe URL of the media you wish to send out with the message.:status-callbackA URL that Twilio will POST to each time your message status changes to one of the following: queued, failed, sent, delivered, or undelivered:application-sidTwilio will POST MessageSid as well as MessageStatus=sent or MessageStatus=failed to the URL in the MessageStatusCallback property of this Application:max-priceThe total maximum price up to the fourth decimal (0.0001) in US dollars acceptable for the message to be delivered:provide-feedbackSet this value to true if you are sending messages that have a trackable user action and you intend to confirm delivery of the message using the Message Feedback API
Full API documentation can be found here : https://www.twilio.com/docs/api/rest/sending-messages
If you provide a single map, the messenger will split the twilio options out for you.
(def text (twilio {:account "id"
:service-key "key"
:from "+15005550006"}))
By default, riemann uses (body events) to format messages. You can set your own body formatter functions by including :body in msg-opts. These formatting functions take a sequence of events and return a string.
(def text (twilio {} {:body (fn [events]
(apply prn-str events))}))