Inserting A Post Using The WordPress Rest API With Basic Authentication – Lightsail Bitnami Stack
Very quick post here mainly so I don’t forget myself.
I am using postman and I want to insert a post into my website using the Wp REST API.
First things first install this plugin in the plugins directory.
https://github.com/WP-API/Basic-Auth
Bitnami stacks seem to work a bit differently to say your local host setup you actually edit most of the .htaccess functionality via the config file.
I have a WordPress stack setup in /apps/wordpress you can access your conf files in.
~/apps/wordpress/conf
In this folder you want to edit the file httpd-app.conf
sudo vim httpd-app.conf
The right above the other RewriteEngine rules add this.
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
Make sure you restart Apache.
sudo /opt/bitnami/ctlscript.sh restart apache
Now you can use postman to insert your new post.
https://example.com/wp-json/wp/v2/posts/
I am also doing this in a AWS Lambda function like this using the https module.
var wp_data = querystring.stringify({
title: 'Title',
content: 'Hello',
post_status: 'publish'
});
var auth = 'Basic ' + Buffer.from('user:password').toString('base64');
var req = https.request({
hostname: 'example.com',
port: 443,
path: '/wp-json/wp/v2/posts',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': wp_data.length,
'Authorization': auth
}
}, function(res) {
res.setEncoding('utf8');
res.on('data', function(response) {
var resp = JSON.parse(response);
console.log(resp);
});
});
req.on('error', function(err) {
console.log(JSON.stringify(err));
});
req.write(wp_data);
req.end();

