2016-03-04 30 views
0

我的頁面上有一個按鈕WordPress用於檢查或取消選中WordPress的收藏夾。這是我打算從PHP進行POST調用來做到這一點。後來我從一個移動應用程序調用這個php。從閱讀調試工具爲Wordpress創建POST(協議)Chrome

我的應用內移動==>(get_favorito.php)POST(ID用戶,idPost,狀態)==>最喜歡的ON/OFF

我目前使用WP 4.4.2和WordPress插件收藏夾(https://github.com/kylephillips/favorites

我啓動POST使用Chrome的開發者的工具。

image important debugging

而且我可以看到調用時:

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; 


?> 

(我把空間讓餅乾正確顯示)

現在我得到現時有:

http://web.domine.com/wp-admin/admin-ajax.php?action=simplefavorites_nonce 

回答

0

你好,我是在這裏重定向從nubelo爲了回答。

標題由瀏覽器自動設置,Cookie由不同的WordPress頁面設置,如wp-login.php頁面。

simplefavorites cookie是一個存儲anonymoys用戶最喜愛的帖子數組的cookie,它在wp-admin/admin-ajax.php?action = simplefavorites_array頁面的響應頭文件中返回。對於登錄的用戶,收藏夾信息在該頁面的響應中以json格式返回。

我做了一個php腳本來切換它的狀態,它只是將cookie發送到相應的終端,您只需要將cookies存儲在您的移動應用程序中並將它們與您的請求一起發送。 https://gist.github.com/chaps/eec3769560c7d8debe59