Ayuda con Api en php

  • Autor Autor jhonlozanot
  • Fecha de inicio Fecha de inicio
jhonlozanot

jhonlozanot

VIP
Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Suscripción a IA
Hola Betas soy nuevo en esto de las Apis, estoy comprando un servicio pero he visto que se puede consumir por api y me estoy aventurando en esto, dicha api me tiene que imprimir una imagen de una persona (dejo de link de la documentación)
Pero no se como imprimir dicha información de la imagen de CURLOPT_HTTPHEADER,
tiene otro apartado en el api que logre imprimir en json la información con la cabecera 'Content-Type: application/json',

si alguien me da un alcance como pueda hacerlo, gracias

PHP:
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://rest.scrall.cc/v1/persona/reniec/premium/dni',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'MLGJ',
  CURLOPT_POSTFIELDS =>'{
    "dni" : "43400345"
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Basic MzcyZTcwOTUtMmUzNS00NjVkLWJmZWMtZGRkNmEzNzE5N2FjOmRlYTE2YzgzLTJmYzEtNGFhYS04ZDQ1LTA1MjgyNmNlY2FkMg=='
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Nota: codigo de la documetación
 
tie
Hola Betas soy nuevo en esto de las Apis, estoy comprando un servicio pero he visto que se puede consumir por api y me estoy aventurando en esto, dicha api me tiene que imprimir una imagen de una persona (dejo de link de la documentación)
Pero no se como imprimir dicha información de la imagen de CURLOPT_HTTPHEADER,
tiene otro apartado en el api que logre imprimir en json la información con la cabecera 'Content-Type: application/json',

si alguien me da un alcance como pueda hacerlo, gracias

PHP:
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://rest.scrall.cc/v1/persona/reniec/premium/dni',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'MLGJ',
  CURLOPT_POSTFIELDS =>'{
    "dni" : "43400345"
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Basic MzcyZTcwOTUtMmUzNS00NjVkLWJmZWMtZGRkNmEzNzE5N2FjOmRlYTE2YzgzLTJmYzEtNGFhYS04ZDQ1LTA1MjgyNmNlY2FkMg=='
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Nota: codigo de la documetación
te devuelve en json tienes que leerlo y luego imprimirlo con otro codigo :'v
 
En lugar de hacer un echo has esto


PHP:
<?php
$op = json_decode($response);
// Aquí tendrás la variable como un arreglo después de decodear el json
print_r($op);

// O si no lo quieres como array y lo quieres tipo stdClass
$op = json_decode($response, TRUE);
// Lo usuarías tipo
echo $op->TipoDeCambio;
?>
 
En lugar de hacer un echo has esto


PHP:
<?php
$op = json_decode($response);
// Aquí tendrás la variable como un arreglo después de decodear el json
print_r($op);

// O si no lo quieres como array y lo quieres tipo stdClass
$op = json_decode($response, TRUE);
// Lo usuarías tipo
echo $op->TipoDeCambio;
?>
gracias por tu tiempo, una consulta, lo estoy haciendo de esta forma, pero no me imprime los datos

este es el json

"message": "found data",
"result": {
"nuDni": "43400345",
"apePaterno": "PEREZ",
"apeMaterno": "SINARAHUA",
"preNombres": "RUITER",


PHP:
<?php
$url = 'mi url de donde jala el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);
echo $data->nuDni;
echo $data->apePaterno;
echo $data->apeMaterno;
echo $data->preNonbres;
?>
 
gracias por tu tiempo, una consulta, lo estoy haciendo de esta forma, pero no me imprime los datos

este es el json

"message": "found data",
"result": {
"nuDni": "43400345",
"apePaterno": "PEREZ",
"apeMaterno": "SINARAHUA",
"preNombres": "RUITER",


PHP:
<?php
$url = 'mi url de donde jala el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);
echo $data->nuDni;
echo $data->apePaterno;
echo $data->apeMaterno;
echo $data->preNonbres;
?>

Con json_decode($json, TRUE); retorna un array y sin el TRUE un objeto.
PHP:
<?php
$url = 'mi url de donde jala el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);

echo $data['nuDni'];

?>
 
Creo que falta un pago :x

Screen Shot 2022-03-16 at 11.28.46.webp
 
Gracias a todos por responder, si me dan otra mano
PHP:
<?php
$url = 'url donde jalo el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);

foreach ($data as $value) {
   
    echo $value['nuDni'];
    echo "<br>";
    echo $value['apePaterno'];
    echo "<br>";
    echo $value['apeMaterno'];
    echo "<br>";
    echo $value['preNombres'];
    echo "<br>";
    echo $value['digitoVerificacion'];
    echo "<br>";
    echo $value['nuImagen'];
    echo "<br>";
    echo $value['feNacimiento'];
    echo "<br>";
    echo $value['nuDocDeclarante'];
    echo "<br>";
    echo $value['estatura'];
    echo "<br>";
    echo $value['sexo'];
    echo "<br>";
    echo $value['estadoCivil'];
   }
?>

ya estoy jalando los datos, pero me aparecen unas f
1647456132769.png

Revisando los logs me aparece esto,
CSS:
PHP Warning:  Illegal string offset 'apePaterno'

alguna luz que ilumine mi camino hacia el señor :v muchas gracias por su tiempo
 
Gracias a todos por responder, si me dan otra mano
PHP:
<?php
$url = 'url donde jalo el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);

foreach ($data as $value) {
  
    echo $value['nuDni'];
    echo "<br>";
    echo $value['apePaterno'];
    echo "<br>";
    echo $value['apeMaterno'];
    echo "<br>";
    echo $value['preNombres'];
    echo "<br>";
    echo $value['digitoVerificacion'];
    echo "<br>";
    echo $value['nuImagen'];
    echo "<br>";
    echo $value['feNacimiento'];
    echo "<br>";
    echo $value['nuDocDeclarante'];
    echo "<br>";
    echo $value['estatura'];
    echo "<br>";
    echo $value['sexo'];
    echo "<br>";
    echo $value['estadoCivil'];
   }
?>

ya estoy jalando los datos, pero me aparecen unas f
Ver el archivo adjunto 714599
Revisando los logs me aparece esto,
CSS:
PHP Warning:  Illegal string offset 'apePaterno'

alguna luz que ilumine mi camino hacia el señor :v muchas gracias por su tiempo
data es un array de arrays?
 
data es un array de arrays?
estoy que leo esto
PHP:
{
  "message": "found data",
  "result": {
    "nuDni": "43400345",
    "apePaterno": "PEREZ",
    "apeMaterno": "SINARAHUA",
    "preNombres": "RUITER",
    "digitoVerificacion": "3",
    "nuImagen": "82119379",
    "feNacimiento": "26/11/1982",
    "nuDocDeclarante": "",
    "estatura": "163",
    "sexo": "MASCULINO",
    "estadoCivil": "SOLTERO",
 
estoy que leo esto
PHP:
{
  "message": "found data",
  "result": {
    "nuDni": "43400345",
    "apePaterno": "PEREZ",
    "apeMaterno": "SINARAHUA",
    "preNombres": "RUITER",
    "digitoVerificacion": "3",
    "nuImagen": "82119379",
    "feNacimiento": "26/11/1982",
    "nuDocDeclarante": "",
    "estatura": "163",
    "sexo": "MASCULINO",
    "estadoCivil": "SOLTERO",
Entonces no es un array de arrays.

PHP:
<?php
$url = 'url donde jalo el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);

echo $data['result']['nuDni'];

?>
 
Entonces no es un array de arrays.

PHP:
<?php
$url = 'url donde jalo el json';
$json= file_get_contents($url);
$data = json_decode($json, TRUE);

echo $data['result']['nuDni'];

?>
Gracias amigo!! ahora si imprime de manera correcto una consulta como imprimiría la foto de esto, nuevamente muchas gracias.
1647457449858.webp
 
Parece que esta en base 64, para ver la imagen en html puedes hacerlo asi:

HTML:
<img src="data:image/jpg;base64,/9j/4AAQSk..." />

Y si la quieres en formato raw seria algo asi:

imagenraw = base64_decode($data['result']['imagenes']['foto']);

Y ya lo puedes guardar a disco.
 
Hola @jhonlozanot , me podrías indicar donde puedo conseguir un token para el api?
Saludos!
 
Atrás
Arriba