【发布时间】:2015-01-01 17:27:40
【问题描述】:
我在弄清楚如何访问来自以下 API 请求的响应时遇到问题。虽然公共 API 很简单并返回我可以放入对象/数组的 JSON,但我不太了解如何使用 API 密钥访问请求的响应等。最终,我希望能够以与公共 API 类似的方式访问项目:
$contents = file_get_contents($url);
$json = json_decode($contents, true);
//PRINT IT
echo $json['something']['something'];
这是开发 API 文档中提供的代码:
$apikey = "xxx";
$apisecret = "yyy";
$nonce=time();
$uri='https://bittrex.com/api/v1.1/account/getbalances?apikey='.$apiKey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);
如果我尝试转储 $obj,它会返回“1”。
//DEBUGGING
echo '<pre>';print_r($obj);exit;
响应应该是这样的:
{
"success" : true,
"message" : "",
"result" : [{
"Currency" : "DOGE",
"Balance" : 0.00000000,
"Available" : 0.00000000,
"Pending" : 0.00000000,
"CryptoAddress" : "DLxcEt3AatMyr2NTatzjsfHNoB9NT62HiF",
"Requested" : false,
"Uuid" : null
}, {
"Currency" : "BTC",
"Balance" : 14.21549076,
"Available" : 14.21549076,
"Pending" : 0.00000000,
"CryptoAddress" : "1Mrcdr6715hjda34pdXuLqXcju6qgwHA31",
"Requested" : false,
"Uuid" : null
}
]
}
这里是 API 文档:https://bittrex.com/Home/Api
另外,上面的代码会自动在页面上打印响应,是哪一行打印出来的?
我对 API 很陌生,很抱歉,如果这是一个愚蠢的问题,我就是无法理解它。
谢谢
/////已解决
我添加了以下代码行并且它工作了。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
【问题讨论】:
-
您为什么不简单地按照文档进行操作
-
@IndraKumarS 如前所述,我是 API 的新手,我只是问为什么我不能以对象/数组的形式访问响应。我已阅读文档但无济于事(无论如何我都可以解释)。我收到了来自服务器的响应,我只是不知道如何解释它。