To download an image received from the webhook, first, I retrieve the URL with the call to the media endpoint, I execute a curl call to

https://graph.facebook.com/v14.0/xxxxxxxxxxxxxx 

where xxxxxxxxxxxxxx is the media id.

The code I use to do that is:

$token = 'sdfsfsdfd'; $curl = curl_init(); curl_setopt_array($curl, array(   CURLOPT_URL => 'https://graph.facebook.com/v14.0/xxxxx',   CURLOPT_RETURNTRANSFER => true,   CURLOPT_ENCODING => '',   CURLOPT_MAXREDIRS => 10,   CURLOPT_TIMEOUT => 0,   CURLOPT_FOLLOWLOCATION => true,   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,   CURLOPT_CUSTOMREQUEST => 'GET',   CURLOPT_HTTPHEADER => array(     'Authorization: Bearer '.$token,     'Content-Type: application/json'   ), ));   $response = curl_exec($curl); curl_close($curl); echo $response."<hr>"; $dati = json_decode($response); 

and the $response is:

(     [url] => https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=790316572396xxx&ext=1659596318&hash=ATuHn61BbJOBYzugyRcP6O6UnyY2NSVh3Bb8v12OS3OCzQ     [mime_type] => image/jpeg     [sha256] => 1cf4a54f0d86c6603d10ad2e9836bc5a98edfabab4b5b8120822be59cbdcxxx0     [file_size] => 253685     [id] => xxxxx     [messaging_product] => whatsapp ) 

After this, I make a new curl call to the obtained URL

$curl = curl_init(); curl_setopt_array($curl, array(   CURLOPT_URL => $dati->url,   CURLOPT_RETURNTRANSFER => true,   CURLOPT_ENCODING => '',   CURLOPT_MAXREDIRS => 10,   CURLOPT_TIMEOUT => 0,   CURLOPT_FOLLOWLOCATION => true,   CURLOPT_USERAGENT => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,   CURLOPT_CUSTOMREQUEST => 'GET',   CURLOPT_HTTPHEADER => array(     'Authorization: Bearer '.$token        ), )); $response = curl_exec($curl); if(curl_errno($curl)){     throw new Exception(curl_error($curl)); } $getstatusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); if($getstatusCode == 200){          echo 'Downloaded!<hr>';              echo $response;      } else{          echo "Status Code: " . $getstatusCode;      } 

But the $response obtained is the "something went wrong".

I would have expected a binary blob instead.

Where did I go wrong?

Please note, this issue is in Whatsapp Cloud API not the business API.

I want to add new columns to the Account Summary Report: https://developers.google.com/google-ads/scripts/docs/solutions/account-summary

But I'm getting an error.

'report_fields': [ {'columnName': 'metrics.cost_micros', 'displayName': 'Cost'}, {'columnName': 'metrics.average_cpc', 'displayName': 'Avg. CPC'}, {'columnName': 'metrics.ctr', 'displayName': 'CTR'}, {'columnName': 'metrics.search_impression_share', 'displayName': 'Search Impr. share'}, {'columnName': 'metrics.impressions', 'displayName': 'Impressions'}, {'columnName': 'metrics.clicks', 'displayName': 'Clicks'}, {'columnName': 'metrics.conversions', 'displayName': 'Conversions'}, {'columnName': 'metrics.conversions_value', 'displayName': 'Revenue'}, {'columnName': 'metrics.cost_per_conversion', 'displayName': 'CPA'}, {'columnName': 'metrics.conversions_from_interactions_rate', 'displayName': 'CVR'} 

--- Error---

Error: Unknown field metrics.conversions     at format (Code:174:13)     at Code:97:33     at Array.map (<anonymous>)     at main (Code:96:55) 

I am trying to list all sub accounts in a manager account. I am using the listAccessibleCustomers method in the example below but it is only returning the main customer accounts and not the sub/linked accounts even though I have access to the sub accounts, because I can successfully request a campaign list of one of the sub accounts.

Here is the code I use that's only returning the main accounts.

$this->auth(); $customerServiceClient = $this->$googleAdsClient->getCustomerServiceClient(); // Issues a request for listing all accessible customers. $accessibleCustomers = $customerServiceClient->listAccessibleCustomers(); // Iterates over all accessible customers' resource names. $allitems = array(); foreach ($accessibleCustomers->getResourceNames() as $resourceName) {     /** @var string $resourceName */     array_push($allitems,array("name"=>$resourceName)); } return array("count"=>count($accessibleCustomers->getResourceNames()),"items"=>$allitems); 

Here is the response:

array(2) {      ["count"]=> int(2)      ["items"]=> array(2) {          [0]=> array(1) { ["name"]=> string(20) "customers/**********" }          [1]=> array(1) { ["name"]=> string(20) "customers/**********" }      }  } 

Ultimately it needs to return all the sub/linked accounts of the account that's specified as the loginCustomerId inside the google_ads_php.ini file. Any help would be appreciated.