3 个版本

0.0.3-alpha.12024 年 8 月 21 日
0.0.2 2024 年 6 月 11 日
0.0.1 2024 年 5 月 26 日

#522网页编程

Download history 123/week @ 2024-05-22 25/week @ 2024-05-29 94/week @ 2024-06-05 50/week @ 2024-06-12

222 每月下载量

MIT 许可证

555KB
9K SLoC

施瓦布 API

CI Crates.io MIT licensed docs downloads

这不是官方 API,也不是 Charles Schwab API 的稳定复制品。功能可能会因施瓦布的更新而改变。

概述

目前,仅支持个人开发者的 API。

先决条件

  1. 要使用 API,您需要在 Charles Schwab 开发者门户 上申请访问权限。批准后,您将收到必要的密钥和密钥。
  2. (可选)创建自签名证书
    openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
    

示例

use std::path::PathBuf;
use reqwest::Client;

use schwab_api::api;
use schwab_api::token::TokenChecker;

#[tokio::main]
async fn main() {
    let key = "your_app_key".to_string();
    let secret = "your_secret".to_string();
    let callback_url = "https://127.0.0.1:8080".to_string();
    let path = dirs::home_dir()
        .expect("home dir")
        .join(".credentials")
        .join("Schwab-rust.json");
    let certs_dir = PathBuf::from("your_certs_dir");

    let client = Client::new();
    let token_checker = TokenChecker::new(path, key, secret, callback_url, certs_dir, client)
        .await
        .unwrap();

    let api = api::Api::new(token_checker, client).await.unwrap();

    let req = api.get_quote("VTI".to_string()).await.unwrap();
    let rsp = req.send().await.unwrap();
    println!("{:?}", rsp);
}

安装

# Cargo.toml
[dependencies]
schwab_api = "0.0"

参考

免责声明: 这是一个施瓦布的非官方 API 包装器。它不受施瓦布或任何相关组织的赞助或关联。在使用此包之前,请务必阅读并理解基础 API 的服务条款。此包的作者不对使用此包可能产生的任何损害承担责任。有关详细信息,请参阅 LICENSE 文件。

依赖项

~23–39MB
~687K SLoC