通过Coinbase iOS SDK检索所有用户钱包

A. *_*ker 7 oauth objective-c ios coinbase-api

我最近一直在试验Coinbase iOS SDK,我一直在检索用户的以太坊,Litecoin和比特币现金余额和历史交易时遇到问题.目前,我只是设法用比特币,美元和欧元来做这件事,这似乎与Coinbase提供的演示应用程序的行为一致.

我已使用OAuth2在Coinbase API Access页面上配置了应用程序,并且正在应用程序中使用生成的客户端ID和机密.

问题似乎源于我修改Coinbase iOS SDK以允许我将帐户参数作为"全部"传递的事实.我希望这可以让我查看所有用户帐户(ETH,BTC,LTC等)的详细信息.但是,在Coinbase对象上调用'getAccountsList'时,我只获得BTC,USD和EUR.

NSString *accessToken = [response objectForKey:@"access_token"];
Coinbase *client = [Coinbase coinbaseWithOAuthAccessToken:accessToken];

[client getAccountsList:^(NSArray *accounts, CoinbasePagingHelper *paging, NSError *error) {
    for (CoinbaseAccount *account in accounts) {
        // Only BTC, USD and EUR are in the accounts array at this point. 
    }
}];
Run Code Online (Sandbox Code Playgroud)

这是令人惊讶的,因为权限请求页面正确地询问用户所有钱包,如下面的屏幕截图所示:

在此输入图像描述

我怀疑这个解决方案是使用API​​密钥,因为您可以准确指定授予访问权限的帐户.我计划分发应用程序,因此不应使用此技术.

在此输入图像描述

以下是我发送的URL的示例:

https://www.coinbase.com/oauth/authorize?response_type=code&client_id=CLIENT_ID_GOES_HERE&account=all&scope=balance%20transactions%20user&redirect_uri=com.example-name.example-app.coinbase-oauth%3A%2F%2Fcoinbase-oauth
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使用OAuth请求访问所有用户帐户,并能够检索每个帐户的详细信息?我定义的范围在某种程度上是不正确的吗?我能想到的唯一选择是逐个请求访问每个钱包并存储个人访问令牌.然而,这不是一个很好的用户体验.

谢谢!

gui*_*ido 0

我认为 iOS SDK 需要更新。它仍然连接到旧的 API 版本。

我使用的是原始的 Coinbase SDK。没有叉子。相反,在 wallet:accounts:read 范围旁边,我还将["accounts": "all"]元参数添加到 startAuthentication 方法中。

和。我没有使用该getAccountList方法,而是.doGet使用 api v2 帐户端点的更通用方法(因此coinbase.doGet("https://api.coinbase.com/v2/accounts", parameters: nil) {(response, error) -> Void in

这为我提供了所有钱包的帐户信息。不过,在这种情况下,您确实需要对响应对象进行一些 json 处理。