8
我目前正在編寫一個PHP項目,他希望在WordpressvíaOAuth 1.0中登錄,然後向API發出請求。Wordpress透明OAuth 1.0使用PHP登錄
的工作流程如下:
- 獲取請求令牌。
- 使用請求令牌,登錄到Wordpress。 (問題在這裏)
- 登錄後,授權憑證並獲取驗證標記。
- 獲取訪問令牌。
- 最後,使用AT和AT Secret進行API調用。
我在XAMPP下的本地主機上的測試工作正常,但是當我將代碼上傳到服務器(UNIX)時,我從Cookie中獲得了一個問題。
我通過cURL進行登錄調用,設置cookie,然後解析對HTML的響應(我需要字段「_wpnonce」發送到授權頁面)。
問題是我總是得到啓用Cookies錯誤。我測試的捲曲參數的所有組合,使用的所有配置和實例,但沒有得到工作:(
當前的代碼是:
//Llamamos al login
$data = array();
$data['log'] = $login;
$data['pwd'] = $password;
$data['redirect_to']="/wp-login.php?action=oauth1_authorize&oauth_token=" . $req_token;
$data['testcookie']="1";
$data['oauth_token']=$req_token;
$cookiefile1 = dirname(__FILE__)."/cookie1.txt" ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . "/wp-login.php");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
//Una vez logueado tenemos que autorizar
//Obtenemos los datos del formulario
$dom = new DOMDocument();
$dom->loadHTML($output);
$fichero = fopen("test.html","w");
fwrite($fichero,$output);
fclose($fichero);
//$wpnonce = $dom->getElementById("_wpnonce");
我缺少什麼
謝謝?前進!
你確定你的'$ url'設置正確嗎? –
是的,我檢查了很多次,這是正確的網址。正如我所說,在本地主機上它工作。 –