Unimatrix Rust SDK

安装

安装适用于 Rust 的 Unimatrix SDK 的推荐方法是将 crates.io 中的 uni-sdk crate 添加到项目的 Cargo.toml。该 SDK 需要 Rust 1.86 或更高版本。

请在 Cargo.toml 中添加异步 SDK 和 Tokio 运行时:

[dependencies]
uni-sdk = "0.3"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

如果应用使用同步调用,请启用 blocking 功能:

[dependencies]
uni-sdk = { version = "0.3", features = ["blocking"] }

使用示例

初始化客户端

use uni_sdk::UniClient;

fn main() -> uni_sdk::Result<()> {
    let client = UniClient::new("your access key id", "your access key secret")?;
    Ok(())
}

也可以通过环境变量配置访问凭证,再使用 UniClient::from_env()

export UNIMTX_ACCESS_KEY_ID=your_access_key_id
export UNIMTX_ACCESS_KEY_SECRET=your_access_key_secret

发送短信

use uni_sdk::{SendMessageRequest, UniClient};

#[tokio::main]
async fn main() -> uni_sdk::Result<()> {
    let client = UniClient::from_env()?;
    let response = client.messages().send(&SendMessageRequest::text(
        "+861865800xxxx", // 以 E.164 格式传入手机号
        "您的验证码是123456,5分钟内有效。",
    )).await?;

    println!("{:#?}", response.data);
    Ok(())
}

或者使用阻塞式客户端:

use uni_sdk::{blocking::UniClient, SendMessageRequest};

fn main() -> uni_sdk::Result<()> {
    let client = UniClient::from_env()?;
    let response = client.messages().send(&SendMessageRequest::text(
        "+861865800xxxx",
        "您的验证码是123456,5分钟内有效。",
    ))?;

    println!("{:#?}", response.data);
    Ok(())
}

发送验证码

use uni_sdk::{SendOtpRequest, UniClient};

#[tokio::main]
async fn main() -> uni_sdk::Result<()> {
    let client = UniClient::from_env()?;
    let response = client.otp().send(&SendOtpRequest::new("+861865800xxxx")).await?;

    println!("{:#?}", response.data);
    Ok(())
}

校验验证码

use uni_sdk::{UniClient, VerifyOtpRequest};

#[tokio::main]
async fn main() -> uni_sdk::Result<()> {
    let client = UniClient::from_env()?;
    let response = client.otp().verify(&VerifyOtpRequest::new(
        "+861865800xxxx",
        "123456", // 用户提交的验证码
    )).await?;

    println!("{}", response.into_data()?.valid);
    Ok(())
}