在这里,我尝试使用coinbase api获取所有帐户:
require 'MyInclude/vendor/autoload.php';
use Coinbase\Wallet\Client;
use Coinbase\Wallet\Configuration;
use Coinbase\Wallet\Resource\Account;
use Coinbase\Wallet\ActiveRecord\AccountActiveRecord;
$apiKey = 'API KEY';
$apiSecret = 'API SECERET';
$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);
$accounts = $client->getAccounts();
输出:此阵列中只有25个帐户
如何获得所有帐户???
答案 0 :(得分:2)
检查API文档。
返回对象列表的所有GET端点都支持基于游标 分页对象内的分页信息分页。 这意味着要获取所有对象,需要对其进行分页 始终使用列表中最后一个资源的id作为结果 first_after参数用于下一次调用。
https://developers.coinbase.com/api/v2#pagination
所以你的请求只返回25个第一个结果。为了获得所有帐户,您需要使用返回的next_uri
进行循环(请参阅示例响应)。
{
"pagination": {
"ending_before": null,
"starting_after": null,
"limit": 25,
"order": "desc",
"previous_uri": null,
"next_uri": "/v2/accounts?&limit=25&starting_after=5d5aed5f-b7c0-5585-a3dd-a7ed9ef0e414"
},
"data": [
...
]
}
答案 1 :(得分:1)
您还可以将初始限制设置为 100(默认为 25)。例如
client.getAccounts({limit: 100}, function(err, accounts) {
if (err) {
// Handle error
} else {
// Call again if there is pagination
if (!pagination.next_starting_after) {
// Remember to set pagination to 100 again
pagination.limit = 100;
client.getAccounts({limit: 100}, function(err, accounts) {
// do your business logic
});
}
}
});
答案 2 :(得分:0)
:
account.getTransactions(null, function(err, txns, pagination) {
txns.forEach(function(txn) {
console.log('my txn: ' + txn.id);
});
console.log(pagination.next_uri);
account.getTransactions(pagination, function(err, txns) {
txns.forEach(function(txn) {
console.log('my txn: ' + txn.id);
});
});
});