使用应用密码创建WordPress文章时遭遇401权限错误
解决WordPress.com站点REST API创建文章的401权限错误
你遇到的问题核心是WordPress.com托管站点的REST API认证规则和自托管WordPress完全不同——应用密码仅适用于自托管WordPress的基础认证,对WordPress.com官方API无效,必须使用其专属的OAuth 2.0认证机制。
具体修复步骤:
替换正确的API端点
WordPress.com的wp/v2 API需要指定站点ID,不能直接用站点域名拼接。先通过以下请求获取你的站点ID:curl https://public-api.wordpress.com/rest/v1.1/sites/your-site-domain.com响应中的
ID字段就是站点ID,之后创建文章的端点应为:https://public-api.wordpress.com/wp/v2/sites/{你的站点ID}/posts切换到OAuth 2.0认证
- 登录WordPress.com开发者控制台创建一个新应用,获取客户端ID和客户端密钥。
- 引导用户授权你的应用,获取包含
posts_write权限的访问令牌(授权流程需遵循WordPress.com的OAuth 2.0规范)。 - 用Bearer令牌替换原有的Basic认证头,格式为:
Authorization: Bearer {你的访问令牌}
修改后的代码示例
const accessToken = '你的OAuth 2.0访问令牌'; const siteId = '你的站点ID'; const body = { title: 'new post', content: 'content', status: 'draft' }; const resp = await fetch(`https://public-api.wordpress.com/wp/v2/sites/${siteId}/posts`, { method: 'POST', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, body: JSON.stringify(body) }); const data = await resp.json(); console.log(data);
额外注意事项
- 确保授权时请求了
posts_write权限,否则即使拿到令牌也无法创建文章。 - 确认你的WordPress.com账号拥有站点的编辑或管理员权限,无权限的账号即使认证通过也会被拒绝。
内容的提问来源于stack exchange,提问作者Raymond Camden
相关产品推荐
相关产品推荐

