2015-06-16 2 views
1

Я пытаюсь подключиться к API-интерфейсу Marketo.com с использованием curl. Я не могу получить ответ от службы идентификации. Я только получаю сообщение об ошибкеЗаменяет ли Marketo API завиток на основе каждой учетной записи?

«[локон] 6: Не удалось разрешить хост„“MY_CLIENT_ENDPOINT.mktorest.com

, , но я могу напечатать сконструированного URL и вставить его в адресная строка браузера, и это обеспечит ожидаемый ответ с помощью элемента access_token.

Я могу использовать curl в php и в терминале для доступа к моей учетной записи gmail, поэтому curl может получить доступ к службе https. Я попытался отправить параметры в curl url в качестве запроса на получение, а также путем объявления m с опцией curl -F в качестве почтового запроса

Мое приложение использует 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']; 
} 

Опять же, это не удается с той же ошибкой, но производит совершенно сформированный URL, что я могу вставить в браузер и получить правильный ответ. Я также пробовал это, используя пост вместо того, чтобы получить то, что у меня есть для каждого другого упомянутого теста, и они были опробованы на моем локальном хосте и на тестовом сервере.

Может кто-нибудь объяснить мне, почему это не удастся? Блокирует ли 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

Смежные вопросы