试图获得非对象属性的枪口响应

问题描述 投票:0回答:1

我正在尝试执行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)行上看到对我的请求的适当答复(我将在下面发布)。但是,如果我转到下一行,则会出现错误,指出Trying to get property 'total_count' of non-object

您可以从下面的返回中看到,有一个名为total_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":{
   }
}
php laravel guzzle sparkpost
1个回答
0
投票

您可以检查$body的类型吗?错误提示您尝试

获取非对象的属性'total_count'

尝试输入此代码$result = json_decode($response->getBody()); $body = $result->responses[0]->beans;

© www.soinside.com 2019 - 2024. All rights reserved.