Мы используем PHP GAPI ([https://code.google.com/p/gapi-google-analytics-php-interface/) для получения данных и отображения графиков в админ-панели наших сайтов.
Мы знаем, что эта библиотека не обновлялась с 2009 года, но она работала хорошо для нас долгое время, пока несколько месяцев назад …
Ниже мы получили ошибку:
Fatal error:
Uncaught exception 'Exception' with message 'GAPI: Failed to request report data.
Error: "Request failed, fopen provides no further information"' in /www/clientname/site/lacentrale/gapi.class.php:218
Stack trace:
#0 /www/clientname/site/cms/include.dashboard.analytics.visits.php(37): gapi->requestReportData('95220065', Array, Array, Array, NULL, '2014-11-23', '2014-12-22', 1, 30)
...
#6 {main} thrown in /www/clientname/site/cms/gapi.class.php on line 218
Вот код для include.dashboard.analytics.visits.php — строки 35–39 (ошибка в строке 37):
if ( ! $ga = $myCache->getCache() ){
$ga = new gapi(ga_email,ga_password);
$ga->requestReportData(ga_profile_id,array($dimension),array('visits','pageviews','timeOnSite','avgTimeOnSite','pageviewsPerVisit'),array($dimension),null,$begin,$end,1,$max);
$myCache->saveCache($ga);
}
И вот код для gapi.class.php — строки с 212 по 219 (ошибка в строке 218):
if(substr($response['code'],0,1) == '2')
{
return $this->reportObjectMapper($response['body']);
}
else
{
throw new Exception('GAPI: Failed to request report data. Error: "' . strip_tags($response['body']) . '"');
}
Мы не до конца понимаем эти ошибки, которые не так очевидны, и поскольку в этих файлах ничего не изменилось …
Как мы видели на других билетах StackOverflow и других форумах, мы уже проверили идентификатор нашего профиля, который является хорошим (8 цифр после p в URL-адресе Google Analytics).
Мы не хотели бы переходить на другой PHP API для GA (если таковой имеется? Какое решение было бы лучшим на сегодняшний день?), Потому что потребовалось бы много работы, чтобы снова реализовать созданную нами панель администратора …
Большое спасибо за вашу помощь!
Проблема решена: мы внесли изменения в gapi.class.php долгое время был файл для проекта, который требовал специальных секретных спецификаций для подключения к серверу, и мы все еще использовали этот файл, измененный в других проектах, которые не требовали этих модификаций …
Поэтому мы загрузили чистую копию GAPI и заменили исходный файл для решения проблемы 😉
Других решений пока нет …