2015-06-16 56 views
1

我正在嘗試使用curl連接到Marketo.com REST API。 我無法從身份服務獲得響應。我只得到一個錯誤信息Marketo API是否基於每個帳戶捲曲?

「[捲曲] 6:無法解析主機‘MY_CLIENT_ENDPOINT.mktorest.com’

, 但我可以打印所構建的網址,並將其粘貼到瀏覽器地址欄,這將提供預期的響應與access_token元素

我可以使用curl在php和終端訪問我的gmail帳戶,以便curl能夠訪問https服務 我試過發送curl url中的參數作爲get請求並通過聲明m與捲曲的-F選項作爲post請求

我的應用程序使用dchesterton/marketo-rest-api在github上可用,但我也嘗試了一個簡單的php curl請求來獲取訪問令牌。

private function getToken() { 
    $url = "$this->client_url/identity/oauth/token?grant_type=client_credentials&client_id=$this->client_id&client_secret=$this->client_secret"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $response = curl_exec($ch); 
    $errors = curl_error($ch); 
    curl_close($ch); 

    file_put_contents($this->logDir . 'access_token_response' . date('Y-m-d') . '.txt', $url . "\n" . $response . "\n", FILE_APPEND); 
    if ($errors) { 
     file_put_contents($this->logDir . 'access_token_errors' . date('Y-m-d') . '.txt', $errors . "\n", FILE_APPEND); 
    } 
    return $response['access_token']; 
} 

這再次失敗,相同的錯誤,但產生一個五臟俱全的網址,我可以粘貼到瀏覽器,並得到有效的響應。 我也試過這個使用後,而不是像我提到的每個其他測試一樣,這些已經在我的本地主機和測試服務器上嘗試過。

任何人都可以向我解釋爲什麼會失敗? Marketo是否根據每個賬戶阻止捲曲?

回答

1

我試圖實現類似的東西,但我的代碼不工作。我不知道什麼是失敗,但我想你的代碼,它似乎稍作修改後,完美地工作:

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($request_data)); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
$response = curl_exec($curl); 
$errors = curl_error($curl); 
curl_close($curl); 

我希望這有助於。

+0

感謝您的回覆。 – Bluebox

+0

我通過加入 'curl_setopt($ ch,CURLOPT_FOLLOWLOCATION,TRUE); curl_setopt($ ch,CURLOPT_MAXREDIRS,4);' 我不知道爲什麼這使它的工作,我沒有測試你的代碼,因爲我不想打破什麼作品,謝謝 – Bluebox