У меня есть кнопка на моей странице WordPress, чтобы проверить или снять отметку с поста WordPress как избранного. Я намерен сделать POST-вызов из php, чтобы сделать это. Позже я называю этот php из мобильного приложения.
My App Mobile ==> (get_favorito.php) POST (idUser, idPost, Status) ==> Избранное вкл. / Выкл.
В настоящее время я использую WP 4.4.2 и плагин для WordPress ИЗБРАННОЕ (https://github.com/kylephillips/favorites)
Я запускаю ПОСТ используемый инструмент для разработчиков Chrome.
И я вижу, что звонок сделан:
http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_favorite&nonce=XXXXXXcd14&postid=273&siteid=1&status=inactive
или же
http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_favorite&nonce=XXXXXXcd14&postid=273&siteid=1&status=active
Мой вопрос связан с заголовком и cookie. Как вы получили эту информацию?
Я пытаюсь это, но это не работает.
Это php я пишу.
<?php
$ruta = 'http://' . $_SERVER['HTTP_HOST'];
$json = file_get_contents($ruta . '/wp-admin/admin-ajax.php?action=simplefavorites_nonce');
$arr = json_decode($json, true);
$nonce = $arr['nonce'];$opts = array(
'http'=>array(
'method'=>'POST',
'header'=> 'POST /wp-admin/admin-ajax.php HTTP/1.1\r\n' .
'Host: web.domine.com\r\n' .
'Connection: keep-alive\r\n' .
'Content-Length: 84\r\n' .
'Accept: */*\r\n' .
'Origin: http://web.domine.com\r\n' .
'X-Requested-With: XMLHttpRequest\r\n' .
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36\r\n' .
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n' .
'Referer: http://web.domine.com/hola-mundo-2/\r\n' .
'Accept-Encoding: gzip, deflate\r\n' .
'Accept-Language: es-ES,es;q=0.8\r\n' .
'Cookie: wordpress_dddd3333f97127bf3816f4455971ce5aa=peteradmin%7C1457085836%7CxWJrk7EQVEYRpZY9Jzev4fH6jx3cq97wx6LPaMd9C4v%7Cd232ca14edca535e653dd37607b754d78926410e317d34315cbcb5533cda08c8; PHPSESSID=8eda0049e17a67becb1c8fddd18c6c51;
wordpress_logged_in_dddd3333f97127bf3816f4455971ce5aa=peteradmin%7C1457085836%7CxWJrk7EQVEYRpZY9Jzev4fH6jx3cq97wx6LPaMd9C4v%7C63a7b53cfbb2c5a3b86e59c65e9977077e352ad8fe00228dee9b04a7a1e36ad9;
wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26mfold%3Do;
wp-settings-time-1=1456991866;
wordpress_test_cookie=WP+Cookie+check;
simplefavorites=%5B%7B%22site_id%22%3A1%2C%22posts%22%3A%7B%221%22%3A194%2C%222%22%3A208%2C%223%22%3A273%7D%7D%5D'
)
);
$context = stream_context_create($opts);
//
//
$param = "action=simplefavorites_favorite&nonce='.$nonce.'&postid=273&siteid=1&status=active";
$json = file_get_contents($ruta . '/wp-admin/admin-ajax.php?'.$param.'', false, $context);
echo $json;?>
(Я поставил пробелы, чтобы куки правильно отображались)
И теперь я получаю nonce с:
http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_nonce
Здравствуйте, меня перенаправили сюда с нубело, чтобы ответить.
Заголовки устанавливаются браузером автоматически, а файлы cookie — различными страницами WordPress, такими как страница wp-login.php.
Простые файлы cookie — это файлы cookie, в которых хранится массив избранных сообщений пользователя anonymoys, и он возвращается в заголовках ответов на странице wp-admin / admin-ajax.php? Action = simplefabilities_array. Для зарегистрированных пользователей избранные данные возвращаются в формате json в ответе на той же странице.
Я сделал php-скрипт для переключения статуса, он просто отправляет куки на соответствующие конечные точки, и вам нужно будет только сохранить куки в вашем мобильном приложении и отправить их вместе с вашим запросом.
https://gist.github.com/chaps/eec3769560c7d8debe59
Других решений пока нет …