5个版本 (破坏性更新)
0.5.0 | 2024年8月4日 |
---|---|
0.4.0 | 2024年7月31日 |
0.3.0 | 2024年7月30日 |
0.2.0 | 2024年7月30日 |
0.1.0 | 2024年7月27日 |
#235 in Web编程
每月539次下载
170KB
902 行
sendblue
Sendblue API客户端
本模块提供与Sendblue API交互的客户端,包括发送消息、检索消息和评估电话号码的方法。
概述
Sendblue API允许您发送消息、检索消息历史记录并评估电话号码是否可以使用iMessage。本模块将这些功能封装在一个用户友好的Rust客户端中。
特性
- 发送消息:使用Sendblue API发送单个或分组消息。
- 检索消息:使用过滤和分页选项获取消息历史记录。
- 评估电话号码:检查电话号码是否可以发送/接收iMessage。
- 输入指示器:向收件人发送输入指示器。
安装
使用cargo add命令
cargo add sendblue
如果您需要JSON模式支持,请启用schemars
功能
cargo add sendblue --features schemars
使用方法
要使用Sendblue API客户端,请使用您的API密钥和密钥创建SendblueClient
实例。
use sendblue::SendblueClient;
let client = SendblueClient::new("your_api_key".into(), "your_api_secret".into());
示例
发送消息
use sendblue::SendblueClient;
use sendblue::models::MessageBuilder;
#[tokio::main]
async fn main() {
let client = SendblueClient::new("your_api_key".into(), "your_api_secret".into());
let message = MessageBuilder::new(phonenumber::parse(None, "+1234567890").unwrap())
.content("Hello, world!".into())
.build()
.unwrap();
match client.send(&message).await {
Ok(response) => println!("Message sent: {:?}", response),
Err(e) => error!("Error sending message: {:?}", e),
}
}
检索消息
use sendblue::SendblueClient;
use sendblue::models::GetMessagesParamsBuilder;
#[tokio::main]
async fn main() {
let client = SendblueClient::new("your_api_key".into(), "your_api_secret".into());
let params = GetMessagesParamsBuilder::new()
.limit(Some(50))
.offset(Some(0))
.number(Some(phonenumber::parse(None, "+12345678912").unwrap()))
.from_date(Some("2023-06-15 12:00:00".into()))
.build();
match client.get_messages(params).await {
Ok(response) => println!("Messages retrieved: {:?}", response.messages),
Err(e) => error!("Error retrieving messages: {:?}", e),
}
}
评估电话号码
use sendblue::SendblueClient;
use sendblue::models::EvaluateServiceBuilder;
#[tokio::main]
async fn main() {
let client = SendblueClient::new("your_api_key".into(), "your_api_secret".into());
let evaluate_service = EvaluateServiceBuilder::new()
.number(phonenumber::parse(None, "+19999999999").unwrap())
.build();
match client.evaluate_service(&evaluate_service).await {
Ok(response) => println!("Evaluation result: {:?}", response),
Err(e) => error!("Error evaluating number: {:?}", e),
}
}
发送输入指示器
use sendblue::SendblueClient;
#[tokio::main]
async fn main() {
let client = SendblueClient::new("your_api_key".into(), "your_api_secret".into());
let number = phonenumber::parse(None, "+1234567890").unwrap();
match client.send_typing_indicator(&number).await {
Ok(response) => println!("Typing indicator sent: {:?}", response),
Err(e) => error!("Error sending typing indicator: {:?}", e),
}
}
贡献
我们欢迎贡献!请参阅CONTRIBUTING.md文件,了解如何为此项目做出贡献的更多详细信息。
许可
本项目可选择以下任一许可证进行双重许可
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
- Apache许可证,版本2.0 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
联系
有关任何问题或问题,请联系:[email protected]
依赖关系
~27–40MB
~411K SLoC