Я пытаюсь использовать свой API Wordpress, используя Basic Auth с Guzzle (инструмент http) из моего промежуточного программного обеспечения (Laravel).
$username = 'myAdminUserName';
$password = 'myAdminPassword';
$uri = 'https://example.com/wp-json/mysite-api/cleared-action';
$response = $this->guzzle->put(
$uri,
[
'headers' => [
'Authorization' => 'Basic ' . base64_encode( $username . ':' . $password )
],
'body' => [
'user_id' => $wordpressId //passed into this function
]
]
);
Затем он попадает на маршрут, настроенный в моем Wordpress API.
$routes['/mysite-api/cleared-action'] = array(
array(array($this, 'automatedClearing'), WP_JSON_Server::ACCEPT_JSON
| WP_JSON_Server::CREATABLE
| WP_JSON_Server::EDITABLE)
);
Однако это насколько это возможно. Он не достигает моей конечной точки automatedClearing
, которая выглядит так
public function automatedClearing() {
global $container;
\Groups_User_Group::create( array('user_id' => 2903, 'group_id' => 13));
$mySiteServices = $container['services'];
$this->$mySiteServices->sendClearedEmail(2903); //2903 = user_id
}
Я использовал жестко заданные значения для идентификатора пользователя.
Я продолжаю получать ответ 200 на свой вызов, поэтому он определенно попадает в маршрут, но не выполняет конечную точку. Ответ в основном просто пустой.
Мой Wordpress access.log показывает, какой маршрут был поражен, но мой error.log ничего не показывает. Кстати, это ящик Laravel Homestead (бродячий), сталкивающийся с бродячим ящиком Wordpress.
Мне интересно, это потому, что WP-API требует одноразового номера? Но я думал, что nonce нужен только в Wordpress, тогда как это внешнее приложение, использующее Wordpress.
Я довольно застрял на этом. Любое руководство приветствуется
WP_JSON_Server::READABLE
к маршруту, иначе я получаю ответ 404. - person Tuesdave   schedule 30.07.2015