9个版本 (5个稳定版)

1.1.0 2024年3月25日
1.0.3 2023年8月16日
1.0.2 2023年1月29日
1.0.0 2020年9月8日
0.1.0 2015年4月20日

#577 in 网络编程

Download history 2241/week @ 2024-03-14 536/week @ 2024-03-21 362/week @ 2024-03-28 391/week @ 2024-04-04 1096/week @ 2024-04-11 570/week @ 2024-04-18 1025/week @ 2024-04-25 607/week @ 2024-05-02 886/week @ 2024-05-09 1490/week @ 2024-05-16 448/week @ 2024-05-23 640/week @ 2024-05-30 1059/week @ 2024-06-06 691/week @ 2024-06-13 1195/week @ 2024-06-20 509/week @ 2024-06-27

每月下载 3,687
用于 3 crates

MIT许可证

25KB
653

twilio-rs

twilio-rs 是一个用于与Twilio集成的Rust库。它试图提供一个惯用的Rust接口来向Twilio API发送请求,并验证、解析和回复Twilio发送到您的服务器的webhook。

首先,您需要创建一个Twilio客户端

let client = twilio::Client::new(ACCOUNT_ID, AUTH_TOKEN);

现在,您可以使用该客户端发送或接收Twilio请求。例如,要发送消息

client.send_message(OutboundMessage::new(from, to, "Hello, World!")).await;

或者进行通话

client.make_call(OutboundCall::new(from, to, callback_url)).await;

当然,我们与Twilio的交互大部分是通过定义响应Twilio webhook的资源来实现的。为了以自定义回复响应每条短信,在您的服务器处理方法中

use hyper::{Body, Request, Response};
use std::convert::Infallible;

async fn handle_request(req: Request<Body>) -> Result<Response<Body>, Infallible> {
    let client = ...;
    let response = client.respond_to_webhook(req, |msg: Message| {
        let mut t = Twiml::new();
        t.add(&twiml::Message {
            txt: format!("You told me: '{}'",
            msg.body.unwrap()),
        });
        t
    })
    .await;
    Ok(response)
}

或者,要使用消息响应语音回调

use hyper::{Body, Request, Response};
use std::convert::Infallible;

async fn handle_request(req: Request<Body>) -> Result<Response<Body>, Infallible> {
    let client = ...;
    let response = client.respond_to_webhook(req, |msg: Call| {
        let mut t = Twiml::new();
        t.add(&twitml::Say {
            txt: "Thanks for using twilio-rs. Bye!".to_string(),
            voice: Voice::Woman,
            language: "en".to_string(),
        });
        t
    })
    .await;
    Ok(response)
}

使用respond_to_webhook方法将首先使用您的AuthToken验证请求是否来自Twilio。如果失败,将向客户端发送错误。接下来,将从传入的参数中解析调用或消息。如果缺少必填字段,将向客户端发送错误。最后,解析后的对象将被传递到您的处理方法,该方法必须返回一个Twiml,该Twiml将被用于响应webhook。

respond_to_webhook方法被设计用于处理Hyper RequestResponse。Hyper也用于内部请求Twilio的API。

依赖关系

~9–21MB
~326K SLoC