#sms #api-client #wrapper #send-message #client-send #imessage #api-bindings

sendblue

SendBlue 是一个Rust库,它提供了与SendBlue REST API交互的API客户端,使企业能够将iMessage和SMS服务集成到其应用程序中。

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编程

Download history 405/week @ 2024-07-27 120/week @ 2024-08-03 14/week @ 2024-08-10

每月539次下载

MIT/Apache

170KB
902

crates.io docs | sendblue Build Status License: MIT/Apache-2.0 Downloads semantic-release: rust

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文件,了解如何为此项目做出贡献的更多详细信息。

许可

本项目可选择以下任一许可证进行双重许可

联系

有关任何问题或问题,请联系:[email protected]

依赖关系

~27–40MB
~411K SLoC