Solo una prueba simple para obtener algunos datos a través de API no funciona. Uso el ejemplo de PHP de su propio sitio web, pero no se imprime ningún resultado. Fuente: https://pro.coinmarketcap.com/api/v1#section/Quick-Start-Guide ¿Hago algo mal? Uso el entorno sandbox con la clave API de demostración. Curl está instalado en mi servidor. ¡Muchas gracias!
<?php $url = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'; $parameters = [ 'start' => '1', 'limit' => '5000', 'convert' => 'USD' ]; $headers = [ 'Accepts: application/json', 'X-CMC_PRO_API_KEY: b54bcf4d-1bca-4e8e-9a24-22ff2c3d462c' ]; $qs = http_build_query($parameters); // query string encode the parameters $request = "{$url}?{$qs}"; // create the request URL $curl = curl_init(); // Get cURL resource // Set cURL options curl_setopt_array($curl, array( CURLOPT_URL => $request, // set the request URL CURLOPT_HTTPHEADER => $headers, // set the headers CURLOPT_RETURNTRANSFER => 1 // ask for raw response instead of bool )); $response = curl_exec($curl); // Send the request, save the response print_r(json_decode($response)); // print json decoded response curl_close($curl); // Close request ?>Cuando var_dump($response) obtengo:
error code: 1020Esto se debe a que la API detecta un bot/script.
Considere agregar un agente de usuario:
PHP cURL ¿cómo agregar el valor del Agente de usuario O superar los servidores que bloquean las solicitudes cURL?
curl_setopt_array($curl, array( CURLOPT_URL => $request, CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0' ));Ahora, el script genera:
stdClass Object ( [status] => stdClass Object ( [timestamp] => 2021-08-30T15:06:20.200Z [error_code] => 0 [error_message] => [elapsed] => 0 [credit_count] => 1 [notice] => ) [data] => Array ... and a lot more ...