Я пытаюсь получить доступ к этой конечной точке Coinbase API:
https://api.pro.coinbase.com/currencies
Обратите внимание, что конечная точка является общедоступной / не прошедшей проверку подлинности, а API документация подтверждает, что
$coinbase_coins = file_get_contents('https://api.pro.coinbase.com/currencies');
$coinbase_coins = json_decode($coinbase_coins, true);
Приведенный выше код выдает ошибку 400. Я дергаю себя за волосы, пытаясь понять это. Я могу получить доступ к конечной точке просто отлично в браузере. Я могу получить доступ к другим общедоступным конечным точкам в разных API, так что я не думаю, что это проблема на сервере.
Я также попробовал cURL без удачи.
Может кто-нибудь показать рабочий пример на PHP случайно? Спасибо!
Похоже, это проблема на стороне сервера; это блокировка запросов без браузера UA. Вы можете установить один, и, кажется, работает нормально.
$ctx = stream_context_create(["http"=>["user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0"]]);
$coinbase_coins = file_get_contents('https://api.pro.coinbase.com/currencies', true, $ctx);
$coinbase_coins = json_decode($coinbase_coins, true);
print_r($coinbase_coins);
Других решений пока нет …