Я пытаюсь получить некоторую информацию о своей учетной записи Google Analytics
с помощью PHP. Я уже выполнил шаги для создания учетной записи службы в API консоли Google в этом ответе . Я использую клиент API Google для PHP .
Это код, который у меня есть до сих пор:
<?php $path_to_src = 'src'; // These files are in /src, upload its contents to your web server require_once $path_to_src . '/Google_Client.php'; require_once $path_to_src . '/contrib/Google_AnalyticsService.php'; $path_to_keyfile = '***'; //my private key // Initialise the Google Client object $client = new Google_Client(); // Your 'Product name' $client->setApplicationName('My App Name'); $client->setAssertionCredentials( new Google_AssertionCredentials( '**', //gserviceaccount mail array('https://www.googleapis.com/auth/analytics.readonly'), file_get_contents($path_to_keyfile) ) ); // Get this from the Google Console, API Access page $client->setClientId('***'); // my cliente ID $client->setAccessType('offline_access'); $analytics = new Google_AnalyticsService($client); // create service and get data $service = new Google_AnalyticsService($client); // We have finished setting up the connection, // now get some data and output the number of visits this week. // Your analytics profile id. (Admin -> Profile Settings -> Profile ID) $analytics_id = 'ga:****'; // my profile id $lastWeek = date('Ym-d', strtotime('-1 week')); $today = date('Ym-d'); try { $results = $analytics->data_ga->get($analytics_id, $lastWeek, $today,'ga:visits'); echo '<b>Number of visits this week:</b> '; echo $results['totalsForAllResults']['ga:visits']; } catch(Exception $e) { echo 'There was an error : - ' . $e->getMessage(); }
Я включил расширение openssl
в PHP:
Когда вы просматриваете место расположения php-скрипта, я получаю почти постоянную загрузку и следующую ошибку:
Я использую PHP 5.4.7:
После отладки кода клиента API Google, похоже, что скрипт разбивается по этой строке:
if (!openssl_sign($data, $signature, $this->privateKey, "sha256"))
Все, что ниже этой строки, не вызвано. Похоже, что ошибка происходит в этой строке. Есть ли несовместимость здесь или что-то еще?
Для начала вам нужно изменить одно:
Вы дважды создаете экземпляр AnalyticsService. Выньте тот, который вы не используете:
$service = new Google_AnalyticsService($client);
Посмотрите, помогает ли это вашей проблеме вообще.