FeedBurner API: получить число подписчиков

Давно уже сам юзаю. Но порой ошибка при получение данных была, но на следующий день опять норм. Там у гугли на форумах многие про эту ошибку спрашивали. Решил гайдик накатать.

Использование FeedBurner API в php

Всё что надо, получить ответ от feedburner.google.com/api/awareness/1.0/GetFeedData:

$twodayago = date('Y-m-d', strtotime('-4 days', time()));$onedayago = date('Y-m-d', strtotime('-1 days', time()));$today = date('Y-m-d');$api = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=ваш_uri&dates=$twodayago,$onedayago";$ch = curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $api);$data = curl_exec($ch);$base_code = curl_getinfo($ch);curl_close($ch);

Ну, в целом так-то всё. Ответ получен. Что-то вроде:

<?xml version="1.0" encoding="UTF-8"?><rsp stat="ok">  <!--This information is part of the FeedBurner Awareness API. If you want to hide this information, you may do so via your FeedBurner Account.-->  <feed><entry date="2012-09-17" circulation="17" hits="86" reach="26" /><entry date="2012-09-18" circulation="0" hits="0" reach="0" />  </feed></rsp>

Это для наглядности, чтобы хоть знали, что API возвращает нам. Теперь только пропарсить:

if ($base_code['http_code']=='401'){$burner_count_circulation = 'This feed does not permit Awareness API access';$burner_date = $today;} else {$xml = new SimpleXMLElement($data); //парсим XML $bis = $xml->attributes(); if ($bis=='ok'){foreach ($xml->feed as $feed) {if ($feed->entry[1]['circulation']=='0'){$burner_count_circulation = $feed->entry[0]['circulation'];$burner_date  =  $feed->entry[0]['date'];} else {$burner_count_circulation = $feed->entry[1]['circulation'];$burner_date  =  $feed->entry[1]['date'];}}}if ($bis=='fail'){switch ($xml->err['code']) {case 1:$burner_count_circulation = 'Лента не найдена';break;case 5:$burner_count_circulation = 'Не найден необходимый параметр (URI)';break;case 6:$burner_count_circulation = 'Плохо сформированный параметр (DATES)';break;}$burner_date = $today;}}

В $burner_count_circulation число подписчиков. Тут стоит остановится на датах и на ошибке, которая часто бывает.

There was an internal error retrieving this feed. The FeedBurner support team has been notified.

Сначала стоит сказать о FeedBurner. На сколько я знаю, статистика по подписчикам там обновляется раз в день. Если при получении XML файла даты не задать, то он вернёт только последний расчёт, а он часто баженый…точнее там 0 всегда. Не знаю, в чём проблема. Другой вариант самому сроки указывать, как у меня. Но вот FeedBurner как оказывается иногда с задержками стату делает, так что порой последнее обновление бывает за 3 дня от текущей даты.

Так что рекомендую указывать промежуток от сегодняшней даты на 3-5 дней назад.

И да, если ещё не сделали, то сделайте вашу статистику публичной в админке FeedBurner.

Ошибка в плагине FeedBurner для WordPress

Есть плагин для WP, который автоматические стату в сайдбаре выводить по подписчикам. Там тоже этот баг есть. Так как дата стоит на 1 день от текущий. Так что, лезьте в файл плагина и поправьте число и будет вам счастье.

FeedBurner API: получить число подписчиков: 1 комментарий

  1. Stafox

    А, где-то в сентябре или октябре, Google закрыл FB Api :( Они об этом поговаривали с апреля.
    В ближайшее время планирую заняться поиском какой-нибудь альтернативы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *