Obtención de borradores prohibidos en la API de descanso de WordPress

2 minutos de lectura

estoy usando el wpapi módulo npm para interactuar con la API de descanso de WP en una aplicación de nodo. Estoy autenticado y mi usuario creó algunos borradores de publicaciones. Cuando voy al tablero con las mismas credenciales, también puedo ver/editar las publicaciones en borrador.

Estoy usando este método para enumerar los borradores:

wp.posts().auth().param( 'context', 'edit' ).param( 'status', 'draft' )

Pero sigo recibiendo este error:

{ code: 'rest_invalid_param',
  message: 'Invalid parameter(s): status',
  data: { status: 400, params: { status: 'Status is forbidden.' } } }

Aquí es donde he comentado sobre el problema y un contexto útil.

La respuesta del rizo a http://localhost:8000/wp-json/wp/v2/posts?status=borrador es el mismo mensaje de error, así que no creo que el problema sea con el módulo de nodo.

Soy el autor del módulo wpapi, este problema terminó en nuestra lista de problemas https://github.com/WP-API/node-wpapi/issues/325 y representó un error que hemos solucionado en la última versión.

Se requiere autenticación cuando se consultan borradores, y no proporcionar autenticación puede generar este error 400; sin embargo, como se señaló en el problema vinculado anterior, la autenticación funcionaba para solicitudes únicas. ¿Por qué el 400? Lo que sucedía era que dentro de las solicitudes de wpapi no enviamos correctamente las credenciales de autenticación al pasar por una colección, por lo que la solicitud a la primera página de resultados devolvería un 200, luego la segunda página devolvería un 400 porque la segunda solicitud carecía de autenticación. Resolvimos este error pasando siempre las credenciales de autenticación al navegar por las colecciones y, con suerte, esto no hará tropezar a nadie más.

Solución de problemas generales si encuentra un 400:

  • ¿Estás seguro de que estás autenticado? (intenta presionar /usuarios/yo)
  • ¿Su usuario tiene las capacidades requeridas para ver borradores de publicaciones?

¡Y agradecemos los problemas si encuentra errores como este!

¿Ha sido útil esta solución?