这是一个从 Wealthsimple 下载数据的小型库。它不支持 Wealthsimple Trade,目前仅支持下载账户、持仓和交易数据。我使用的 Wealthsimple API 文档可以在 https://developers.wealthsimple.com/ 找到。 为了进行身份验证,我使用了与他们网站相同的客户端 ID,该网站使用与后端相同的 API。
CredentialStore
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]
}
}
AuthenticationCallback
,它将要求用户提供其用户名、密码和一次性密码。WealthsimpleDownloader
:let wealthsimpleDownloader = WealthsimpleDownloader(authenticationCallback: myAuthenticationCallback, credentialStorage: myCredentialStorage)
wealthsimpleDownloader.authenticate() { }
并等待回调WealthsimpleDownloader
提供的其他方法检索数据,例如 getAccounts
或 getPositions
请查看完整的文档 这里。 您也可以查看使用此库的 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 没有任何关联。