I am trying to make a request to an API. The problem is if there are more than 50 records in the result set. The API will break down the result into 'pages' of 50 records each. I am trying to get a single array that has all the results before I save into the database. Below is my code:
<?
$url = 'http://developer-api.bringg.com/partner_api/users';
$data_string = array(
'access_token' => "<YOUR ACCESS TOKEN>",
'timestamp' => date('Y-m-d H:i:s'),
'company_id' => <YOUR COMPANY ID>,
'page' => 3 //this is the page key that needs to be specified
);
$secret_key = "<YOUR SECRET KEY>";
$signature = hash_hmac("sha1", http_build_query($data_string),
$secret_key);
$data_string["signature"] = $signature;
$content = json_encode($data_string);
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Content-Type:application/json',
'Content-Length: ' . strlen($content))
);
$json_response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: call to URL $url failed with status $status, response
$json_response, curl_error " . curl_error($curl) . ", curl_errno " .
curl_errno($curl));
}
curl_close($ch);
$response = json_decode($json_response, true);
?>
I can not know the number of records I have so I don't know how to dynamically change the page number. Is there a way I can do multiple requests and maybe change the page number with loops and then store all the results in one array. Please help, I am new to arrays and curl.