Hi there,
Ik probeer via de nieuwe REST API, welke mee komt in WordPress 4.7, een post te plaatsen door middel van een API call naar m'n WordPress endpoint. Hiervoor gebruik ik een php scriptje die een curl uitvoert met daar in een Basic Authenticatie header. Default hanteert de WordPress API authenticatie d.m.v. cookie, wat inhoudt dat de API post requests alleen uitvoert als de gebruiker daadwerkelijk is ingelogd in de backend. Dat zou met Basic Authenticatie niet het geval moeten zijn. Echter, dat lijkt niet te werken.
Als ik op de WordPress Backend ben ingelogd dan werkt de API call wel, maar als ik ben uitgelogd werkt het niet
.
Iemand ervaring met de nieuwe WordPress REST API die me hiermee op weg kan helpen?
Ik probeer via de nieuwe REST API, welke mee komt in WordPress 4.7, een post te plaatsen door middel van een API call naar m'n WordPress endpoint. Hiervoor gebruik ik een php scriptje die een curl uitvoert met daar in een Basic Authenticatie header. Default hanteert de WordPress API authenticatie d.m.v. cookie, wat inhoudt dat de API post requests alleen uitvoert als de gebruiker daadwerkelijk is ingelogd in de backend. Dat zou met Basic Authenticatie niet het geval moeten zijn. Echter, dat lijkt niet te werken.
Als ik op de WordPress Backend ben ingelogd dan werkt de API call wel, maar als ik ben uitgelogd werkt het niet
Iemand ervaring met de nieuwe WordPress REST API die me hiermee op weg kan helpen?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| function postToWordPress($siteNr, $postTitle, $postContent, $postAuthor){ global $postLoginUsername, $postLoginPassword, $additionalHeaders; $payload['siteNr'] = $siteNr; $payload['endpoint'] = 'https://martinvdijk.nl/wp-json/wp/v2/posts/'; $payload['title'] = $postTitle; $payload['content'] = $postContent; $payload['author'] = $postAuthor; $process = curl_init('https://martinvdijk.nl/wp-json/wp/v2/posts/'); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data', $additionalHeaders)); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, $postLoginUsername . ":" . $postLoginPassword); curl_setopt($process, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($process, CURLOPT_TIMEOUT, 30); curl_setopt($process, CURLOPT_POST, 1); curl_setopt($process, CURLOPT_POSTFIELDS, $payload); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $return = curl_exec($process); $info = curl_getinfo($process); curl_close($process); return print_r($return); } |