我尝试使用wpapi模块在WordPress中创建帖子。没有错误,请求以200 Success
结尾,但是请求正文是一个空对象,并且没有创建帖子。
var wp = new WPAPI({
endpoint: 'http://your-site.com/wp-json',
username: 'someusername',
password: 'password'
});
wp.posts().create({
title: 'Your Post Title',
content: 'Your post content',
status: 'publish'
}).then(function( response ) {
console.log( response.id ); // This is undefined
})
那是为什么,我该如何解决?
答案 0 :(得分:4)
就像我提到的here一样,我使用“应用程序密码”插件解决了该问题。
如果您具有Duo身份验证,并且WP API rest客户端无法解析JSON响应(这确实是无效的),但是却无提示地失败(在那里有try-catch),则可能会出现问题。
为该用户创建一个应用程序密码,然后在Node.js代码中使用它:
var wp = new WPAPI({
endpoint: 'http://your-site.com/wp-json',
username: 'wpapi',
password: 'XXXX XXXX XXXX XXXX'
});
这将绕过Duo身份验证。
答案 1 :(得分:2)
您可以使用[Application password][1]
插件解决此问题!
它用于验证诸如REST API和XML-RPC之类的API请求。它将绕过两因素身份验证,并有助于在不直接提供密码的情况下对用户进行身份验证。而是为每个应用程序生成一个唯一的密码,而不显示用户的主密码。
仅使用此代码!
var wp = new WPAPI({
endpoint: 'http://your-site.com/wp-json',
username: 'someusername',
password: 'password'
});