使用Nest API进行授权时,请求400 BAD REQUEST

时间:2015-01-15 16:09:09

标签: php curl nest-api

我目前正在尝试使用Nest API,但我无法通过授权部分。 这是我用来调用API的PHP代码:

//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)可以正常使用HTTPRequester(Firefox插件),因此问题最明显来自curl请求本身

提前致谢。

2 个答案:

答案 0 :(得分:0)

  

HTTP状态代码

  • 400 - 错误请求 - 通常在出现错误参数时会发生这种情况 给一个方法

所以,试试这个:

echo $url;
exit;

之前:

$ch = curl_init ($url);

并将该网址粘贴到您的浏览器地址栏。查看您发布错误参数的位置。

看,如果有帮助。

答案 1 :(得分:0)

我认为开发人员和检查人员正在同一端口上运行。因此,通过设置“检查”来删除节点上要检查的端口和主机:false

angular.json

"serve": {
  "builder": "@nrwl/node:execute",
  "options": {
    "buildTarget": "api:build",
    "inspect": false
  }
},