Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 试图获取非对象属性的Guzzle响应_Php_Laravel_Guzzle_Sparkpost - Fatal编程技术网

Php 试图获取非对象属性的Guzzle响应

Php 试图获取非对象属性的Guzzle响应,php,laravel,guzzle,sparkpost,Php,Laravel,Guzzle,Sparkpost,我有一个cron命令,我正在努力工作,我已经意识到我不熟悉Guzzle,因为我希望我是。但这是我命令的一部分: foreach($osdClaimResponses as $ocr){ $client = new \GuzzleHttp\Client(['headers' => ['Accept' => 'application/json', 'Authorization' => 'XXXXXXXXXXXXXXXXXXXXXXX']]);

我有一个cron命令,我正在努力工作,我已经意识到我不熟悉Guzzle,因为我希望我是。但这是我命令的一部分:

    foreach($osdClaimResponses as $ocr){
        $client = new \GuzzleHttp\Client(['headers' => ['Accept' => 'application/json', 'Authorization' => 'XXXXXXXXXXXXXXXXXXXXXXX']]);
        $response = $client->request('GET', $endpoint, ['query' => [
            'events' => $events, 
            'transmissions' => $ocr->transmission_id,
        ]]);

        $body = $response->getBody()->getContents();
        $this->info($body);

        if($body->total_count > 0){
            foreach($body->results as $result){
                $this->info($result);
                if($result->rcpt_to == $ocr->destination){
                   $ocr->initial_open_at = Carbon\Carbon::parse($result->timestamp);
                   $ocr->initial_open_ip_address = $result->ip_address;
                   $ocr->save();
                }

            }
        }
    }
现在,最初的请求非常有效,我可以看到对我的请求的适当响应(我将在下面发布),在
$this->info($body)
行上,我可以适当地看到响应。但是,如果我转到下一行,我会得到一个错误,说明
试图获取非对象的属性“total\u count”

正如您在下面的返回中看到的,有一个名为
total\u count
的属性,那么我做错了什么

{
   "results":[
      {
         "template_version                                           ":"0",
         "friendly_from":"XXXXX",
         "subject":"[DRAFT] SXAL Claim",
         "ip_pool":"shared",
         "sending_domain":"XXXXX",
         "                                           rcpt_tags":[

         ],
     "type":"open",
     "raw_rcpt_to":"XXXXX",
     "msg_from":"XXXXX",
     "rcpt_to":"XXXXX",
     "geo_ip":{
        "zip":80216,
        "continent":"NA",
        "country":"US",
        "city":"Denv                                           er",
        "latitude":39.7845,
        "region":"CO",
        "postal_code":"80216",
        "longitude":XXXXX
     },
     "transmission_id":"XXXXX",
     "user_agent":"Outlook-iOS/711.3102771.p                                           rod.iphone (4.8.0)",
     "click_tracking":true,
     "rcpt_meta":{

     },
     "message_id":"XXXXX",
     "ip_address":"XXXXX",
     "initial_pixel":true,
     "recipient_domain                                           ":"XXXXX.com",
     "event_id":"XXXXX",
     "routing_domain":"XXXXX",
     "sending_ip":"192.174.87.34",
     "template_id":"template_697731362943421639",
     "delv_method":"esmtp",
     "customer_id":XXX,
     "open_tracking":true,
     "injection_time":"2019-10-23T15:37:10.000Z",
     "msg_size":"41644",
     "timestamp":"2019-10-23T16:03:34.                                           000Z"
  }
   ],
   "total_count":3,
   "links":{
   }
}

您能检查一下
$body
的类型吗?错误是说你尝试了

获取非对象的属性“total_count”

尝试以下代码
$result=json_decode($response->getBody());

$body=$result->responses[0]->bean

我认为
$response->getBody()->getContents()
是一个json编码的内容。所以试着解码($response->getBody()->getContents())
$body = $response->getBody()->getContents();  //Read the remaining contents of the body as a string