通过读取调试工具 Chrome 为 Wordpress 创建 POST(协议)
Create POST (protocol) for Wordpress from reading debugging tool Chrome
我的 WordPress 页面上有一个按钮,用于选中或取消选中 WordPress 的 post 作为收藏。我打算从 php 调用 POST 来执行此操作。后来我从移动应用程序中调用它 php。
我的移动应用程序 ==> (get_favorito.php) POST (idUser, idPost, Status) ==> 收藏夹开/关
我目前使用 WP 4.4.2 和 WordPress 收藏夹插件 (https://github.com/kylephillips/favorites)
我推出了 POST 用于 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
我的问题来自Header和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;
?>
(我放了空格是为了正确显示cookies)
现在我得到随机数:
http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_nonce
您好,我是从 nubelo 重定向到这里来回答的。
headers 由浏览器自动设置,cookie 由不同的 wordpress 页面设置,如 wp-login。php 页面。
simplefavorites cookie 是存储匿名用户最喜欢的帖子数组的 cookie,它在 wp-admin/admin-ajax 的响应 headers 中返回。php?action=simplefavorites_array 页。对于登录用户,收藏夹信息在同一页面的响应中以 json 格式返回。
我制作了一个 php 脚本来切换状态,它只是将 cookie 发送到相应的端点,您只需要将 cookie 存储在您的移动应用程序中,然后将它们与您的请求一起发送。
https://gist.github.com/chaps/eec3769560c7d8debe59
我的 WordPress 页面上有一个按钮,用于选中或取消选中 WordPress 的 post 作为收藏。我打算从 php 调用 POST 来执行此操作。后来我从移动应用程序中调用它 php。
我的移动应用程序 ==> (get_favorito.php) POST (idUser, idPost, Status) ==> 收藏夹开/关
我目前使用 WP 4.4.2 和 WordPress 收藏夹插件 (https://github.com/kylephillips/favorites)
我推出了 POST 用于 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
我的问题来自Header和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;
?>
(我放了空格是为了正确显示cookies)
现在我得到随机数:
http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_nonce
您好,我是从 nubelo 重定向到这里来回答的。
headers 由浏览器自动设置,cookie 由不同的 wordpress 页面设置,如 wp-login。php 页面。
simplefavorites cookie 是存储匿名用户最喜欢的帖子数组的 cookie,它在 wp-admin/admin-ajax 的响应 headers 中返回。php?action=simplefavorites_array 页。对于登录用户,收藏夹信息在同一页面的响应中以 json 格式返回。
我制作了一个 php 脚本来切换状态,它只是将 cookie 发送到相应的端点,您只需要将 cookie 存储在您的移动应用程序中,然后将它们与您的请求一起发送。 https://gist.github.com/chaps/eec3769560c7d8debe59