Я пытаюсь подключиться к REST API Marketo.com с помощью curl. Я не могу получить ответ от службы идентификации. Я получаю только сообщение об ошибке
"[curl] 6: Не удалось разрешить хост "MY_CLIENT_ENDPOINT.mktorest.com"
, но я могу распечатать построенный URL-адрес и вставить его в адресную строку браузера, и это даст ожидаемый ответ с элементом access_token.
Я могу использовать curl в php и в терминале для доступа к своей учетной записи gmail, чтобы curl мог получить доступ к службе https. Я попытался отправить параметры в URL-адресе curl в качестве запроса на получение, а также объявив их с параметром 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-адрес, который я могу вставить в браузер и получить правильный ответ. Я также пробовал это, используя post вместо get, как я делал для всех других упомянутых тестов, и они были опробованы на моем локальном хосте и на тестовом сервере.
Может ли кто-нибудь объяснить мне, почему это не удастся? Блокирует ли Marketo скручивание для каждой учетной записи?