В настоящее время я пытаюсь использовать Nest API, но не могу пройти часть авторизации.
Вот код PHP, который я использую для вызова API:
//access token url used for authorization
$url="https://api.home.nest.com/oauth2/access_token?code=".$_GET['pin']."&client_id=".$api_key."&client_secret=".$secret_key."&grant_type=authorization_code";
$ch = curl_init ($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
//https
curl_setopt($ch, CURLOPT_SSLVERSION,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST,true);
//to have headers in response
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec ($ch);
if($result){
echo "Result : " .$result;
}else{
echo curl_error($ch);
}
И я получаю следующий результат для этого вызова:
Result : HTTP/1.1 200 Connection established HTTP/1.1 400 BAD_REQUEST Content-Length: 0 Connection: Close
Есть ли другие параметры, которые мне нужно установить, чтобы заставить его работать?
РЕДАКТИРОВАТЬ: сгенерированный URL ($ url) отлично работает с HTTPRequester (аддон Firefox), поэтому проблема, скорее всего, исходит из самого запроса curl
Заранее спасибо.
HTTP коды состояния
Итак, попробуйте это:
echo $url;
exit;
до:
$ch = curl_init ($url);
и скопируйте этот URL в адресную строку браузера. Посмотрите, где вы публикуете неправильный параметр.
Видите, если это поможет.
Других решений пока нет …