Crate twilio_async

Source
Expand description

An async client library for interaction with twilio APIs An async and ergonomic wrapper around Twilio API & TwiML.

All types can run run() or a similar function. They return a value that implements Deserialize.

The examples/ dir has up to date working example code.

Messages:


use std::env;
use twilio_async::{Twilio, TwilioRequest};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let twilio = Twilio::new(env::var("TWILIO_SID")?, env::var("TWILIO_TOKEN")?)?;
    // sending a message
    twilio.send_msg("from", "to", "Hello World").run().await?;
    // sending a body-less message with media
    twilio
        .send_msg("from", "to", "body")
        .media("http://i0.kym-cdn.com/photos/images/newsfeed/000/377/946/0b9.jpg")
        .run().await?;
    // get details about a message
    twilio.msg("messagesid").run().await?;
    // redact a message
    twilio.msg("messagesid").redact().await?;
    // get a msg media url
    twilio.msg("messagesid").media().await?;
    // delete a msg
    twilio.msg("messagesid").delete().await?;
    // get all messages
    twilio.msgs().run().await?;
    // get all messages between some time
    twilio.msgs().between("start date", "end date").run().await?;
    // get all messages on a specific date
    twilio.msgs().on("date").run().await?;
    Ok(())
}

Calls:



let twilio = Twilio::new(env::var("TWILIO_SID")?, env::var("TWILIO_TOKEN")?)?;
if let TwilioJson::Success(call) = twilio
    .call("from", "to", "http://demo.twilio.com/docs/voice.xml")
    .run().await? {
    // do something with `call`
}

Twiml:

use twilio_async::twiml::{Response, Twiml};

let resp = Response::new()
    .say("Hello World") // builder pattern also supports say(Say::new("Hello World").lang("de")...)
    .play("https://api.twilio.com/Cowbell.mp3")
    .build();
let s = "<Response><Say voice=\"man\" language=\"en\" loop=\"1\">Hello World</Say><Play loop=\"1\">https://api.twilio.com/Cowbell.mp3</Play></Response>";
assert_eq!(resp.unwrap(), s.to_string());

Re-exports§

pub use url::form_urlencoded;
pub use crate::error::*;

Modules§

error
twiml

Structs§

Authorization
Authorization header, defined in RFC7235
Call
CallResp
Conference
ConferenceResp
Conferences
Credentials
Authentication credentials, as described in RFC7235.
EncryptionDetails
GetConference
GetMessage
GetRecording
ListAllMsgs
ListConferencesResp
ListRecordingResp
MediaItem
MediaResp
Messages
MessagesDetails
Msg
MsgResp
Recording
RecordingResp
Recordings
SendCall
SendMsg
Twilio
Url
A parsed URL record.

Enums§

CallStatus
CallbackEvent
Direction
MsgStatus
RecordingStatus
TwilioJson

Traits§

Execute
TwilioRequest

Functions§

encode_pairs
url_encode

Type Aliases§

TwilioResp