0

I simply need to pull all my users from wordpress. When I urlfetchapp as in the script below, it gives a 406 error but shows the first users in its truncated response, so I set muteHttpExceptions and get the first full page of users. I cannot get a second page or otherwise use queries in the URL.

Here's the kicker, if I disable my authentication, urlfetchtapp gives the same results and same failure to accept queries, but a browser will give me a different set of results when going to the same URL, by providing a list of only the admin users, but IT ACCEPTS QUERIES.

I've tried mimicking the headers the browser sent and that didn't work...

This is a hosted wp deployment (on cPanel) on an apache server.

The major difference in the response headers (beyond the authenticated script's side setting cookies and timeouts), is:

urlfetchapp

Link=https://example.com/wp-json/wp/v2/users?page=2; rel="next" x-wp-total=187 x-wp-totalpages=19

vs browser

Link=https://example.org/wp-json/ X-WP-Total: 8 X-WP-TotalPages: 1

The code I use is simple:

function newTest(){
  var url = "https://example.com/wp-json/wp/v2/users";
  var pw = Utilities.base64Encode('<user>:<app-pw>')
  var options = {
    "method": "post",
    "headers": {
      "Authorization": "Basic "+ pw,
    },
    "contentType": 'application/json',
    "muteHttpExceptions": true
  }
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getHeaders());
  Logger.log(response.getContentText());
}
onyxwolf
  • 1
  • 1

0 Answers0