PHP LIFX Power 的 HTTP CURL PUT 请求 On/Off
PHP HTTP CURL PUT request for LIFX Power On/Off
我正在尝试使用 PHP.
为我所有的 Lifx 灯泡 on/off 供电
API 文档 http://developer.lifx.com/ 说要使用 PUT 请求:
curl -u "c87c73a896b554367fac61f71dd3656af8d93a525a4e87df5952c6078a89d192:" \
-X PUT \
-d "state=on" \
"https://api.lifx.com/v1beta1/lights/all/power"
现在可以在命令行中使用该 curl 命令。它会提示我输入密码,除非我在 "username" 中的冒号后添加它。
问题是当我尝试将该命令翻译成 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 请求可能有什么问题?
感谢您的任何建议。
通过设置一些其他卷曲选项解决了这个问题:
$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);
$link 是 https://api.lifx.com/v1beta1/lights/all/power
$authToken 是我的 api 密钥
我正在尝试使用 PHP.
为我所有的 Lifx 灯泡 on/off 供电API 文档 http://developer.lifx.com/ 说要使用 PUT 请求:
curl -u "c87c73a896b554367fac61f71dd3656af8d93a525a4e87df5952c6078a89d192:" \
-X PUT \
-d "state=on" \
"https://api.lifx.com/v1beta1/lights/all/power"
现在可以在命令行中使用该 curl 命令。它会提示我输入密码,除非我在 "username" 中的冒号后添加它。
问题是当我尝试将该命令翻译成 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 请求可能有什么问题?
感谢您的任何建议。
通过设置一些其他卷曲选项解决了这个问题:
$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);
$link 是 https://api.lifx.com/v1beta1/lights/all/power
$authToken 是我的 api 密钥