[Visto: 390 veces]

El presente tutorial, inicia cuando se ha instalado el WordPress, para el presente tutorial, se asume que la ruta del WordPress es http://localhost/wordpress, y además está activado los “enlaces permanentes”, esto para las rutas amigables del sitio, luego se cuenta con el plugins Custom post type, donde se ha creado un tipo de post, llamado propuesta-academica.

Vamos al desarrollo:

1. Editar el archivo .htaccess como sigue, lo principal es la línea HTTP_AUTHORIZATION y debería quedar como sigue:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress

2. Posteriormente instalar el plugin JSON Basic Authentication, https://github.com/WP-API/Basic-Auth, esto para comprobar la validación, ojo tomar en cuenta que esto es para desarrollo y no para producción.

Los mecanismos de conexión son: Básica validación, por cookie y por Oath, se recomienda usar Oath para el ambiente de producción, por su nivel de seguridad.

3. Luego parar probar, crear un archivo de extensión .php, para probar la inserción de contenidos desde otro espacio externo al sitio, recuerde que usuario y clave, son las credenciales de ingreso que usa en http://localhost/wordpress/wp-login.php los datos son de tipo texto.

$host = ‘http://localhost/wordpress/wp-json/wp/v2/propuesta-academica/';
$data = array(‘title’ => ‘Titulo Post Nuevo’, ‘content’ => ‘Contenido nueva entrada’, ‘status’ => ‘publish’);
$data_string = json_encode($data);
$headers = array(
‘Content-Type:application/json’,
‘Content-Length: ‘ . strlen($data_string),
‘Authorization: Basic ‘. base64_encode(‘usuario:clave’)
);
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘POST’);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

4. También es posible probarlo mediando línea de comandos en shell

curl -X POST –user usuario:clave http://localhost/wordpress/wp-json/wp/v2/propuesta-academica/ -d ‘{“title”:”Mi nuevo titulo”}’

5. Algunos servicios en donde las rutas del ApiRest son bajo SSL, se podría probar usando el siguiente código, nótese que con las sentencias de SSL_VERIFY se está dejando pasar la validación del certificado

$host = 'https://api.mailchimp.com/SaveContact/';
    $data = array(
        'token'   => 'sFgHyyR',
        'Contact' => array(
            'Email'        => $_POST['oCorreo'],
            'CustomFields' => array(
                'Key'   => '', 
				'Value' => ''
            )
        )
    );
    $data_string = json_encode($data);
    $headers = array(
        'Content-Type: application/json',
        'Authorization: Api8loYi3hjyj78k8i0j0jykt'
    );
    $ch = curl_init($host);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0 );
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER    , $headers);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST , 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS    , $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    $v = curl_error($ch);
    curl_close($ch);
    $result = json_decode($result);
    if($v){
        die('Se presentaron problemas '.$v);
    }else{
        die('Almacenamiento satisfactorio.');
    }

6. Otro ejemplo de almacenamiento por APi Rest

    $token  = "0po98uiokj786tgfr44fy65rtxxsergty765r4fh";
    $uriApi = "https://conectivalinux.com/crm_ventas/api/v1/form";

    $newData = array(
        'FirstName'                     => $_POST['oNombre'],
        'LastName'                      => $_POST['oApelli'],
        'EmailAddress'                  => $_POST['oCorreo'],
        'MobileNumber'                  => $_POST['oTelefo']
    );
    $handle  = curl_init($uriApi);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($handle, CURLOPT_HTTPHEADER, array( 'Cache-Control: no-cache','Authorization: '.$token  ));
    curl_setopt($handle, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_POSTFIELDS,     http_build_query($newData));
    $response   = curl_exec($handle);
    $errors     = curl_error($handle);
    $responseJSON = json_decode($response);
    curl_close($handle);

Y así es como pueden probar las conexion de Api Rest.

Puntuación: 0 / Votos: 0