I am attempting to post an Image to Cloudflare Images via the image URL on Google Cloud, but get an error response indicating missing auth header. The dump of the response object is as follows:
HTTP/2 400 date: Mon, 30 Jan 2023 19:56:00 GMT content-type: application/json retry-after: 210 cf-ray: 791cc4b4cf2659bb-IAD set-cookie: __cflb=0H28vgHxwvgAQtjUGUFqYFDiSDreGJnV4fLt7xmThZw; SameSite=Lax; path=/; expires=Mon, 30-Jan-23 22:26:01 GMT; HttpOnly cf-cache-status: DYNAMIC set-cookie: __cfruid=2282d1cd3383e99d77c06efacb72eaad3860c0bd-1675108560; path=/; domain=.api.cloudflare.com; HttpOnly; Secure; SameSite=None server: Cloudflare {“success”:false,“errors”:[{“code”:9106,“message”:“Missing X-Auth-Key, X-Auth-Email or Authorization headers”}]}
My PHP code is below. Is there something simple I am missing? (code below has xxxx in sensitive data)
<?php
$accountID = 'xxxxxxxxxxxxxxxxxx';
$accesstoken = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$postTarget="https://api.cloudflare.com/client/v4/accounts/$accountID/images/v1";
$vPostData="";
$vPostData .= "url=https://storage.googleapis.com/xxxxxx/xxxxxxx/xxx/xxx/xxxxx.jpg";
$vPostData .= "&requireSignedURLs=false";
$vPostData .= "&metadata={'test':'true'}";
$headr = array();
$headr[] = 'Content-type: application/json';
$headr[] = 'Authorization: Bearer '. $accesstoken;
$headr[] = 'X-Auth-Email: '. $accesstoken;
$request = curl_init($postTarget);
curl_setopt($request, CURLOPT_HEADER, $headr);
curl_setopt($request, CURLOPT_POSTFIELDS, $vPostData);
curl_exec($request);
curl_close ($request);
?>