10 个版本

0.5.0 2023年9月8日
0.4.3 2023年2月27日
0.4.2 2022年12月14日
0.4.1 2022年4月29日
0.1.2 2021年12月9日

#31 in #science

MIT/Apache

255KB
3.5K SLoC

Sift Rust 客户端

SDK 入门

Cargo.toml 中的示例导入

sift_science = "0.4"

用法

以下是一个使用 reqwest 功能跟踪 $create_account 事件的示例

use sift_science::{
    events::{CreateAccountProperties, Event, EventOptions},
    AbuseType, Client,
};
use std::env;
use tracing::{info, Level};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    tracing_subscriber::fmt().with_max_level(Level::INFO).init();

    let user_id = env::var("USER_ID").expect("must specify USER_ID env var");
    let session_id = env::var("SESSION_ID").ok();
    let http_client = reqwest::Client::default();
    let api_key = env::var("API_KEY").expect("must specify API_KEY env var");

    // Instantiate sift client
    let sift = Client::new(api_key, http_client);

    // Track an event
    let response = sift
        .track(
            Event::CreateAccount {
                user_id,
                session_id,
                properties: Box::new(CreateAccountProperties {
                    user_email: Some("[email protected]".into()),
                    ..Default::default()
                }),
            },
            EventOptions {
                return_score: Some(true),
                abuse_types: Some(vec![AbuseType::AccountTakeover]),
                ..Default::default()
            },
        )
        .await;

    info!(?response, "Got sift event response");

    Ok(())
}

测试

在提交更改之前,请确保以下命令无错误运行

cargo test

依赖项

~2–17MB
~228K SLoC