Извлечение черновиков в Wordpress rest api

Я использую wpapi модуль npm для взаимодействия с WP rest api в приложении node. Я аутентифицирован, и мой пользователь создал несколько проектов сообщений. Когда я перехожу к панели управления с теми же учетными данными, я могу видеть и редактировать проекты сообщений.

Я использую этот метод для перечисления черновиков:

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

Но я продолжаю получать эту ошибку:

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

Здесь, где я прокомментировал проблему и полезный контекст.

Отклик на http://localhost:8000/wp-json/wp/v2/posts?status=draft - это одно и то же сообщение об ошибке, поэтому я не думаю, что проблема связана с модулем node.

Ответ 1

Я являюсь автором модуля wpapi, этот вопрос попал в наш список проблем https://github.com/WP-API/node-wpapi/issues/325 и представлял собой ошибку, в последней версии.

Аутентификация требуется при запросе черновиков и отсутствии проверки подлинности, может привести к этой ошибке 400; однако, как отмечено в связанном выше вопросе, аутентификация работала для одноразовых запросов. Почему 400? То, что происходило, заключалось в том, что внутри запросов wpapi мы неправильно перенаправляли учетные данные аутентификации при подкачке через коллекцию, поэтому запрос на первую страницу результатов возвращал 200, затем вторая страница возвращала 400, потому что второй запрос не имел аутентификации. Мы решили эту ошибку, всегда передавая учетные данные для аутентификации при подкачке через коллекции, и, надеюсь, это не отключает кого-либо еще.

Общее устранение неполадок, если вы столкнулись с 400:

  • Вы уверены, что аутентифицированы? (попробуйте нажать /users/me )
  • Есть ли у пользователя возможности для просмотра черновиков сообщений?

И мы приветствуем проблемы, если вы найдете такие ошибки!