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