【问题标题】:Fetching drafts forbidden in Wordpress rest api获取 Wordpress rest api 中禁止的草稿
【发布时间】:2017-12-04 01:16:33
【问题描述】:

我正在使用wpapi npm 模块与节点应用程序中的 WP rest api 接口。我已通过身份验证,并且我的用户创建了一些草稿帖子。当我使用相同的凭据进入仪表板时,我也可以查看/编辑草稿帖子。

我是用这个方法列出草稿的:

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.' } } }

Here's where I've commented on the issue and some helpful context.

http://localhost:8000/wp-json/wp/v2/posts?status=draft 的 curl 响应是相同的错误消息,所以我不认为问题出在节点模块上。

【问题讨论】:

    标签: wordpress wordpress-rest-api wp-api


    【解决方案1】:

    我是 wpapi 模块的作者,这个问题最终出现在我们的问题列表 https://github.com/WP-API/node-wpapi/issues/325 上,并且代表了我们在最新版本中修复的一个错误。

    查询草稿时需要认证,不提供认证会导致这个400错误;但是,如上面链接的问题中所述,身份验证适用于一次性请求。为什么是400?发生的情况是,在 wpapi 请求中,我们在对集合进行分页时没有正确转发身份验证凭据,因此对结果第一页的请求将返回 200,然后第二页将返回 400,因为第二个请求缺少身份验证。我们已通过在对集合进行分页时始终传递身份验证凭据来解决此错误,希望这不会让其他人绊倒。

    遇到 400 时的一般故障排除:

    • 您确定您已通过身份验证吗? (尝试点击 /users/me)
    • 您的用户是否具备查看草稿帖子所需的能力?

    如果您确实发现了这样的错误,我们欢迎您提出问题!

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 2017-10-13
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多