Problema con la autenticación de la API REST de WooCommerce
Estoy utilizando Postman para probar las llamadas a la API REST en WooCommerce. Cuando llamo a las APIs por defecto de WooCommerce, muestra el siguiente error:
{
"code": "woocommerce_rest_cannot_create",
"message": "Lo sentimos, no tienes permiso para crear recursos.",
"data": {
"status": 401
}
}
Este error aparece cuando uso Autenticación Básica y el método POST en la API de Creación de Clientes.
Y cuando intento llamar a la API de Mostrar Productos con cURL:
http://ejemplo.com/wp-json/wc/v2/products
Usando el método GET desde Postman, muestra el siguiente error:
{
"code": "woocommerce_rest_cannot_view",
"message": "Lo sentimos, no puedes listar recursos.",
"data": {
"status": 401
}
}
Sería genial si alguien pudiera ayudarme con este dolor de cabeza. Gracias.

También me encontré con el mismo problema. Lo intenté en Postman, PHP, NodeJs y todo, pasé casi 2 días sin obtener resultados. Finalmente comencé a recibir respuestas después de agregar una barra al final de la URL.
Me refiero a:
Inicialmente estaba usando https://example.com/wp-json/wc/v3/products?consumer_key=ck_XXXX&consumer_secret=cs_XXXX pero lo cambié a esto https://example.com/wp-json/wc/v3/products/?consumer_key=ck_XXXX&consumer_secret=cs_XXXX (simplemente coloqué una barra antes del signo de interrogación al inicio de la cadena de consulta).
En Postman, incluso sin configurar ningún parámetro de Autorización (Tipo = Sin Autenticación), comencé a recibir respuestas.
Puede que esté relacionado de alguna manera con mi archivo .htaccess, pero sentí que sería bueno compartir esta solución aquí también.

Para mí, fue un problema de autenticación.
Estaba usando Autenticación básica (Basic auth) para Postman
Solo selecciona OAuth 1.0 como tipo de autenticación e ingresa la clave del consumidor (consumer key) y la clave secreta (secret key) en los campos correspondientes
Captura de pantalla:

Asegúrate de haber otorgado permisos de Lectura/Escritura al usuario y también verifica el archivo .htaccess. Intenta pegar este código en tu .htaccess y comprueba nuevamente
# BEGIN WordPress
# Las directivas (líneas) entre `BEGIN WordPress` y `END WordPress` son
# generadas dinámicamente, y solo deberían ser modificadas mediante filtros de WordPress.
# Cualquier cambio a las directivas entre estos marcadores será sobrescrito.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
