Nest Rest API-соединение отклонено

Я пытаюсь перевести свой дом в режим «вдали», используя метод REST. Я пытаюсь сделать это с помощью cURL, но получаю сообщение «Отказано в соединении после перенаправления».

Мой код:

$ch = curl_init("https://developer-api.nest.com/structures/$id?auth=$access_token");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"away":"away"}');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $fp);
curl_setopt($ch, CURLOPT_PUT, true);

echo curl_exec($ch);

Журнал ошибок (с измененным моим идентификатором и кодом доступа):

* About to connect() to developer-api.nest.com port 443 (#0)
*   Trying 54.235.247.171... * connected
* Connected to developer-api.nest.com (54.235.247.171) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate:
*   subject: CN=developer-api.nest.com,OU=Domain Control Validated
*   start date: Apr 10 21:26:03 2014 GMT
*   expire date: Apr 10 21:26:03 2015 GMT
*   common name: developer-api.nest.com
*   issuer: CN=Go Daddy Secure Certificate Authority - G2,OU=http://certs.godaddy.com/repository/,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US
> PUT /structures/asdfghjkl?auth=c.asdfghjkl HTTP/1.1
Host: developer-api.nest.com
Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue

< HTTP/1.1 100 Continue
< HTTP/1.1 307 Temporary Redirect
< Content-Type: application/json; charset=UTF-8
< Access-Control-Allow-Origin: *
< Cache-Control: private, no-cache, max-age=0
< Location: https://firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/structures/asdfghjkl?auth=c.asdfghjkl
< Connection: close
< Content-Length: 0
<
* Closing connection #0
* Issue another request to this URL: 'https://firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/structures/asdfghjkl?auth=c.asdfghjkl'
* About to connect() to firebase-apiserver03-tah01-iad01.dapi.production.nest.com port 9553 (#0)
*   Trying 54.167.139.72... * Connection refused
* couldn't connect to host
* Closing connection #0

Любая идея, почему начальное соединение будет работать, но перенаправление не?

2

Решение

Я обнаружил, что проблема в том, что у моего веб-сервера был заблокирован порт 9553 на исходящей стороне, поэтому firebase не отказывал моему соединению, это был мой брандмауэр все время. После открытия порта 9553 все заработало нормально.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]