Le API di FeedBurner sono diverse dalle altre API. In particolare il numero di iscritti al nostro feed non è memorizzato seguendo un ordine cronologico come in Twitter e Facebook, ma è calcolato tenendo presente il momento in cui si fa la richiesta. Infatti l'attributo XML che viene restituito prende il nome di circulation
e può essere uguale a 0 se nel momento della richiesta nessun utente si è iscritto al nostro feed. La richiesta quindi non va eseguita semplicemente come per altre API, ma va fatta seguire dal parametro dates
che specifica un intervallo di tempo di riferimento con cui calcolare il numero di iscritti.
Possiamo prendere come riferimento due coordinate temporali: la prima è il giorno della nostra richiesta, la seconda è una data al passato in modo da creare un intervallo di tempo.
Il parametro dates
va specificato nell'URL della richiesta. In questo parametro la data al passato viene prima di quella del presente. Le date sono separate da una virgola:
function getFeedBurnerCount()
{
$today = strftime('%Y-%m-%d', time());
$pastTime = strtotime('-2 day');
$ago = strftime('%Y-%m-%d', $pastTime);
$feedURL= 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=blogspot/onwebdev&dates=' . $ago . ',' . $today;
if(@file_get_contents($feedURL)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $feedURL);
$data = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($data);
$fb = $xml->feed->entry[0]['circulation'];
return $fb;
} else {
return '';
}
}