我正在尝试使用 PHP 打开/关闭我所有的 Lifx 灯泡。
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 请求可能有什么问题?
感谢您的任何建议。