2015-05-17 3 views
0

Я пытаюсь включить или выключить все мои лампы Lifx с помощью PHP.PHP HTTP CURL PUT запрос для LIFX Включение/выключение питания

Документация API, http://developer.lifx.com/, говорит использовать запрос PUT:

curl -u "c87c73a896b554367fac61f71dd3656af8d93a525a4e87df5952c6078a89d192:" \ 
     -X PUT \ 
     -d "state=on" \ 
     "https://api.lifx.com/v1beta1/lights/all/power" 

Теперь с помощью этого локон команда работает в командной строке. Он запрашивает мой пароль, если я не добавлю его после двоеточия в «имя пользователя».

Беда в том, когда я пытаюсь перевести эту команду в PHP как так:

$authToken = 'c87c73a896b554367fac61f71dd3656af8d93a525a4e87df5952c6078a89d192:myFakePassword'; 
$ch = curl_init('https://api.lifx.com/v1beta1/lights/all/power'); 
$headers = array("selector=all&state=on",'Authorization: Bearer ' . $authToken); 
curl_setopt($ch, CURLOPT_PUT, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$response = curl_exec($ch); 

Это проходит, но я получаю 404 Not Found, который говорит, что документация Lifx вероятно уродливый селектор.

Примечание: Я был в состоянии сделать успешный вызов с PHP, чтобы переключить питание с этим POST:

$authToken = 'c87c73a896b554367fac61f71dd3656af8d93a525a4e87df5952c6078a89d192'; 
$ch = curl_init('https://api.lifx.com/v1beta1/lights/all/toggle'); 
$headers = array("selector=all",'Authorization: Bearer ' . $authToken); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$response = curl_exec($ch); 

Но я не хочу, чтобы просто переключать свет, я хочу, чтобы иметь возможность указать вкл. или выкл. Что может быть неправильным с моим запросом PUT?

Благодарим за любые предложения.

ответ

0

решаемые, установив некоторые другие опции завиток:

$ch = curl_init($link); 
$headers = array('Authorization: Bearer ' . $authToken); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$data = "state=on"; 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$response = curl_exec($ch); 

$ ссылка https://api.lifx.com/v1beta1/lights/all/power

$ authToken мой ключ API