[][src]Crate twilio_async

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 crate::error::*;

Modules

error
form_urlencoded

Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms.

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 Definitions

TwilioResp