coinbase api调用导致了'403 Forbidden`响应

时间:2017-06-14 07:23:30

标签: php bitcoin coinbase-api coinbase-php

我正在尝试集成Coinbase Wallet PHP Library。

这是我获得当前BTC购买价格的代码

<?php

require_once 'vendor/autoload.php';

use Coinbase\Wallet\Client;
use Coinbase\Wallet\Configuration;
use Coinbase\Wallet\Resource\Address;
use Coinbase\Wallet\Resource\Account;

$apiKey = '**********';
$apiSecret = '*************';
$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);

try {
    $buyPrice = $client->getBuyPrice('BTC-USD');
} catch (Exception $exc) {
    echo '<pre>';
    echo $exc->getTraceAsString();
    echo '<hr/>';
    echo $exc->getMessage();
    echo '</pre>';

}
?>

上面的代码工作得很好,但有时候会抛出以下错误

#0 C:\xampp\htdocs\coinbase\vendor\coinbase\coinbase\src\HttpClient.php(137): Coinbase\Wallet\Exception\HttpException::wrap(Object(GuzzleHttp\Exception\ClientException))
#1 C:\xampp\htdocs\coinbase\vendor\coinbase\coinbase\src\HttpClient.php(121): Coinbase\Wallet\HttpClient->send(Object(GuzzleHttp\Psr7\Request), Array)
#2 C:\xampp\htdocs\coinbase\vendor\coinbase\coinbase\src\HttpClient.php(74): Coinbase\Wallet\HttpClient->request('GET', '/v2/prices/BTC-...', Array)
#3 C:\xampp\htdocs\coinbase\vendor\coinbase\coinbase\src\Client.php(820): Coinbase\Wallet\HttpClient->get('/v2/prices/BTC-...', Array)
#4 C:\xampp\htdocs\coinbase\vendor\coinbase\coinbase\src\Client.php(118): Coinbase\Wallet\Client->getAndMapMoney('/v2/prices/BTC-...', Array)
#5 C:\xampp\htdocs\coinbase\index.php(16): Coinbase\Wallet\Client->getBuyPrice('BTC-USD')
#6 {main}
Client error: `GET https://api.coinbase.com/v2/prices/BTC-USD/buy` resulted in a `403 Forbidden` response:

请建议。

由于

1 个答案:

答案 0 :(得分:2)

我在连接此API时遇到了类似问题,但未使用该库。

我认为这是对Cloudflare的某种保护。我设法绕过它添加一些额外的标题来伪造“真正的”浏览器,尤其是“用户代理”:

        $url = 'https://api.coinbase.com/v2/prices/BTC-EUR/spot';
        $response = wp_remote_get($url, array(
                'timeout' => 120,
                'headers' => array(
                    'CB-VERSION' => '2017-05-19',
                    'Accept' => '*/*',
                    'Accept-Language' => 'de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4',
                    'Cache-Control' => 'no-cache',
                    'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 OPR/45.0.2552.882'
                )
            )
        );

(wp_remote_get来自WordPress)