7个版本
0.2.0 | 2024年2月13日 |
---|---|
0.1.6 | 2024年1月26日 |
#416 在 认证
30KB
526 代码行
示例用法
use std::collections::HashMap;
use garmin_client::GarminClient;
use chrono::NaiveDateTime;
fn main() {
let args: Vec<String> = env::args().collect();
// first need to login (hopefully that's obvious)
let mut client = GarminClient::new();
client.login(args[1], args[2]);
// get endpoint for service
let endpoint = "weight-service/weight/dateRange";
let weight_date = "2023-01-01 00:00:00";
let datetime = NaiveDateTime::parse_from_str(&weight_date, "%Y-%m-%d %H:%M:%S").unwrap();
let params = HashMap::from([
("startDate", "2023-01-01"),
("endDate", "2023-01-01"),
("_", datetime.timestamp_millis().as_str())
]);
let is_json_result = true;
let filename = "weight.json";
client.api_request(endpoint, Some(params), is_json_result, filename);
}
建议使用garmin_download crate进行更程序化的控制,并演示如何格式化各种其他API端点。
注意:此客户端使用基本会话管理来存储会话令牌。然而,启发式方法显示,对于给定的会话仅允许一个端点下载(例如,只能下载特定日期的特定睡眠数据,但可以在同一会话中下载另一日期的睡眠数据)。因此,要从同一端点重新下载相同的文件,您需要删除首次登录后保存的.garmin_session.json文件,或者等待该令牌过期。
依赖项
~15–29MB
~462K SLoC