https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/
Una vez activado en el htaccess de nuestro wordpress debemos añadir:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Y en el wp-config.php añadir:
define('JWT_AUTH_SECRET_KEY', 'laclavesecretaquequeramosmeter');
define('JWT_AUTH_CORS_ENABLE', true);
Es útil tener instalado en nuestro navegador la extensión de restEasy para así hacer pruebas de que responde el wordpress antes de programarlo. También es interesante consultar: https://developer.wordpress.org/rest-api/reference/ donde especifica todas las operaciones que se pueden hacer.
Ahora ya podemos operar, por ejemplo dar de alta un post:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://midominio.com/wp-json/jwt-auth/v1/token");
curl_setopt($ch, CURLOPT_HEADER, 0);
// el username y el password deben ser los de un usuario del wordpress (que sea al menos Administrador o Editor)
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=pepito.perez@gmail.com&password=HElvRFkYXXXXK1XQj");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resultado = curl_exec($ch);
$arr = json_decode($resultado);
curl_close($ch);
if (isset($arr->token)) {
echo "TOKEN:".$arr->token."<hr>";
$authorization = "Authorization: Bearer ".$arr->token;
// dar de alta un post
$data = array('title' => 'En un lugar', 'content' => 'En un lugar de la Mancha de cuyo nombre no quiero acordarme no hace mucho', 'status' => 'publish');
$data_string = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://marketinet.eu/wordpress_aux/wp-json/wp/v2/posts/");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $authorization ));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
}
curl_close($ch);

No hay comentarios:
Publicar un comentario