Error de API de WordPress: “Lo siento, no puedes crear nuevas publicaciones”.

2 minutos de lectura

avatar de usuario
mdkass

Estoy usando la función de script de aplicaciones actual para agregar una nueva publicación a mi sitio de WordPress:

 var um_url="http://test.mywebsite.com/wp/wp-json/wp/v2/posts";
 var um_headers = { 
    "Accept" : "application/json",
    "Authorization": "Basic "+Utilities.base64Encode("user:passowrd"),
    "Content-type":"application/json"
        };

 var um_options = {  
   "method":"POST",     
   "headers": um_headers,
   "dataType" : 'json',
   "data": {
     title: "Foo title",
     content: "Foo content",
     status: "publish"
    }

    };

  var um_response = UrlFetchApp.fetch(um_url, um_options);
  var json = um_response.getContentText();
  Logger.log(json);
}

Pero estoy recibiendo este error:

 {"code":"rest_cannot_create","message":"Sorry, you are not allowed to create new posts.","data":{"status":401}}

Leí otras preguntas similares de StackOverflow y lo resolvieron cambiando el .htacess archivo, desafortunadamente, esto no resolvió mi problema. aquí está mi .htaccess expediente

# BEGIN WP BASIC Auth
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
# END WP BASIC Auth



# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
RewriteBase /
RewriteRule ^index\.php$ - [E=X-HTTP_AUTHORIZATION:%        {HTTP:Authorization},QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>

# END WordPress

¿Alguien puede ayudar?

  • ¿Ha intentado instalar el complemento de autenticación básica?

    – ProEvilz

    5 de octubre de 2017 a las 14:29

  • Lo hice, pero no progresé. Supongo que el complemento no puede ayudarme porque este es el WP más nuevo (5.2.2)

    – HardyVeles

    19 de junio de 2019 a las 10:09

  • ¿Estás autenticado?

    – mediagurú

    9 de julio de 2019 a las 17:28

avatar de usuario
Kiera Howe

Acabo de tener casi exactamente el mismo problema, tratando de agregar algo a través de la API REST. El truco es que debe enviar el REST WP Nonce (llamado wp_rest) con la solicitud, ya sea como un encabezado o como parte de la variable de solicitud…

si usas fetch, puedes hacer esto…

fetch( route, {
    method: method, 
    headers: {
        'X-WP-Nonce': wpApiSettings.nonce
    }
} )

o agréguelo a su consulta vars como ‘_wpnonce’

Puede encontrar el código que establece el usuario actual en 0 en wp-includes/rest-api.php en línea 834 (versión 5.2.1)

  • ¿Cómo llamar a la API para obtener un nonce para agregar una nueva publicación personalizada, diga ‘libro’?

    – Riz

    1 de abril de 2020 a las 6:37

  • Me da el error: “code”: “rest_cookie_invalid_nonce”, “message”: “Cookie nonce is invalid”, “data”: { “status”: 403 }

    – Sohaib Aslam

    1 de enero de 2021 a las 7:35


¿Ha sido útil esta solución?