rest — запрос PHP HTTP CURL PUT для включения / выключения LIFX

Я пытаюсь включить / выключить все лампочки Lifx с помощью PHP.

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

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

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

Проблема в том, что когда я пытаюсь перевести эту команду в 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

0

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

Я пытаюсь включить / выключить все лампочки Lifx с помощью PHP.

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

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

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

Проблема в том, что когда я пытаюсь перевести эту команду в 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

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
0
По вопросам рекламы [email protected]