WealthsimpleDownloader

CI Status Documentation percentage License: MIT Latest version platforms supported: linux | macOS | iOS | watchOS | tvOS SPM compatible

简介

这是一个从 Wealthsimple 下载数据的小型库。它不支持 Wealthsimple Trade,目前仅支持下载账户、持仓和交易数据。我使用的 Wealthsimple API 文档可以在 https://developers.wealthsimple.com/ 找到。 为了进行身份验证,我使用了与他们网站相同的客户端 ID,该网站使用与后端相同的 API。

如何使用

  1. 实现一个 CredentialStore
使用 KeychainAccess 库的示例
import KeychainAccess
  
class KeyChainCredentialStorage: CredentialStorage {

  let keychain = Keychain(service: "XYZ")

  func save(_ value: String, for key: String) {
      keychain[key] = value
  }

  func read(_ key: String) -> String? {
      keychain[key]
  }

}
  1. 实现一个 AuthenticationCallback,它将要求用户提供其用户名、密码和一次性密码。
  2. 使用您的两个实现初始化 WealthsimpleDownloaderlet wealthsimpleDownloader = WealthsimpleDownloader(authenticationCallback: myAuthenticationCallback, credentialStorage: myCredentialStorage)
  3. 调用 wealthsimpleDownloader.authenticate() { } 并等待回调
  4. 现在,您可以开始使用 WealthsimpleDownloader 提供的其他方法检索数据,例如 getAccountsgetPositions

请查看完整的文档 这里。 您也可以查看使用此库的 SwiftBeanCountImporterApp。 如果您想将下载的数据转换为 Beancount 格式,请查看 SwiftBeanCountWealthsimpleMapper

用法

该库支持 Swift Package Manager,因此只需在您的 Package.swift 中添加依赖项即可

.package(url: "https://github.com/Nef10/WealthsimpleDownloader.git", .upToNextMajor(from: "X.Y.Z")),

局限性

请注意,我开发这个库是为了满足我自己的需求,可能存在错误。 目前它仅访问 API 的非常有限的范围。 即使对于它实现的端点,也存在进一步的限制

非常欢迎提出扩展范围或消除限制的 Pull Request。

版权

虽然我的代码是在 MIT 许可证 下获得许可的,但源代码存储库可能包含 Wealthsimple 或其他实体的名称或其他商标; 这些元素的潜在使用限制仍然适用,并且不受软件许可的约束。 API 设计也适用。 除了作为客户之外,我与 Wealthsimple 没有任何关联。