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§
Structs§
- Authorization
 Authorizationheader, defined in RFC7235- Call
 - Call
Resp  - Conference
 - Conference
Resp  - Conferences
 - Credentials
 - Authentication credentials, as described in RFC7235.
 - Encryption
Details  - GetConference
 - GetMessage
 - GetRecording
 - List
AllMsgs  - List
Conferences Resp  - List
Recording Resp  - Media
Item  - Media
Resp  - Messages
 - Messages
Details  - Msg
 - MsgResp
 - Recording
 - Recording
Resp  - Recordings
 - Send
Call  - SendMsg
 - Twilio
 - Url
 - A parsed URL record.