首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非法字符串偏移“名称”,代码与示例json响应一起工作

非法字符串偏移“名称”,代码与示例json响应一起工作
EN

Stack Overflow用户
提问于 2017-02-18 22:33:49
回答 1查看 454关注 0票数 1

我目前正在一个网站工作,以控制我的SmartBulbs在家里通过一个网页。为此,我使用提供的API。

我用一个来自制造商网站的json响应示例尝试了我的代码。所有操作都很好,示例响应中列出的所有灯都是用div表示的,其中有灯的名称。

当我在家里尝试我的代码(在代码中称为API )时,我得到了一个有效的响应,但我也得到了一个错误,它声明了非法的字符串偏移“标签”。我做错了什么?

当我使用示例响应时,一切都很好。我使用API时的响应对我来说是一样的。那不是也行吗?

你可以在下面找到所有的东西。如果您需要一些mor信息,只需问:)

php代码

代码语言:javascript
复制
function get_lights(){

    $link = "https://api.lifx.com/v1/lights/all";
    $authToken = "I inserted my token here and got a valid response";

    $ch = curl_init($link);
    $headers = array('Authorization: Bearer ' . $authToken);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, $headers);
    $response = curl_exec($ch);

    $json = json_decode($response, true);

    $html = null;
    foreach($json as $object)
        {
        $html.= '<div class="element" onclick="get_info();">' . $object['label'] . '</div>';
        }

    return $html;

    }

示例响应

代码语言:javascript
复制
[
  {
    "id": "d3b2f2d97452",
    "uuid": "8fa5f072-af97-44ed-ae54-e70fd7bd9d20",
    "label": "Left Lamp",
    "connected": true,
    "power": "on",
    "color": {
      "hue": 250.0,
      "saturation": 0.5,
      "kelvin": 3500
    },
    "infrared": "1.0",
    "brightness": 0.5,
    "group": {
      "id": "1c8de82b81f445e7cfaafae49b259c71",
      "name": "Lounge"
    },
    "location": {
      "id": "1d6fe8ef0fde4c6d77b0012dc736662c",
      "name": "Home"
    },
    "last_seen": "2015-03-02T08:53:02.867+00:00",
    "seconds_since_seen": 0.002869418,
    "product": {
      "name": "LIFX+ A19",
      "company": "LIFX",
      "identifier": "lifx_plus_a19",
      "capabilities": {
        "has_color": true,
        "has_variable_color_temp": true,
        "has_ir": true,
        "has_multizone": false
      }
    }
  }
]

我的API响应

代码语言:javascript
复制
  [  
   {  
      "id":"d073d513bfd6",
      "uuid":"02ea5835-9dc2-4323-84f3-3b825419008d",
      "label":"MainLight",
      "connected":true,
      "power":"on",
      "color":{  
         "hue":27.581597619592586,
         "saturation":0.0,
         "kelvin":2500
      },
      "zones":null,
      "brightness":0.49999237048905165,
      "group":{  
         "id":"d5aa0e1180293e0af56607cbe47f4940",
         "name":"MyRoom"
      },
      "location":{  
         "id":"451e4b376a38062cdd10c54ab2698975",
         "name":"My Home"
      },
      "product":{  
         "name":"Color 1000",
         "identifier":"lifx_color_a19",
         "company":"LIFX",
         "capabilities":{  
            "has_color":true,
            "has_variable_color_temp":true,
            "has_ir":false,
            "has_multizone":false
         }
      },
      "infrared":null,
      "last_seen":"2017-02-18T21:40:58.164+00:00",
      "seconds_since_seen":0.001675218
   }
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 23:27:30

您为cURL句柄设置了错误的选项:

代码语言:javascript
复制
$ch = curl_init($link);
$headers = array('Authorization: Bearer ' . $authToken);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42321453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档