1
好日子,如何使用PHP
我真的想獲得來自谷歌Analytics(分析)的前10000個數據後獲得下一組數據使用的nextPageToken在谷歌Analytics(分析)API。經過進一步研究後,有一件事叫做nextpagetoken,這是我得到下一組數據的麻煩。我已經嘗試過,但一直在獲取錯誤的錯誤或沒有數據。以前有人有同樣的問題嗎?請幫助我(示例代碼非常感謝)。非常感謝。
這裏是我的代碼:
<?php
$analytics = initializeAnalytics();
$response = getReport($analytics);
printResults($response);
function initializeAnalytics()
{
$KEY_FILE_LOCATION = __DIR__ . 'MyFileDirectory';
// Create and configure a new client object.
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$analytics = new Google_Service_AnalyticsReporting($client);
return $analytics;
}
function getReport($analytics) {
// Replace with your view ID, for example XXXX.
$VIEW_ID = "MyViewId";
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2017-04-01");
$dateRange->setEndDate("2017-06-19");
// Create the Metrics object.
$totalEvents = new Google_Service_AnalyticsReporting_Metric();
$totalEvents->setExpression("ga:totalEvents");
$totalEvents->setAlias("totalEvents");
//Create the Dimensions object.
$clientId = new Google_Service_AnalyticsReporting_Dimension();
$clientId->setName("ga:dimension4");
$sessionId = new Google_Service_AnalyticsReporting_Dimension();
$sessionId->setName("ga:dimension5");
$eventLabel = new Google_Service_AnalyticsReporting_Dimension();
$eventLabel->setName("ga:eventLabel");
$timestamp = new Google_Service_AnalyticsReporting_Dimension();
$timestamp->setName("ga:dimension3");
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
//set number of rows
$request->setPageSize(10000);
$request->setDateRanges($dateRange);
$request->setMetrics(array($totalEvents));
$request->setDimensions(array($clientId,$sessionId,$eventLabel,
$timestamp));
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests(array($request));
return $analytics->reports->batchGet($body);
}
function printResults($reports) {
for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++)
{
$report = $reports[ $reportIndex ];
$header = $report->getColumnHeader();
$dimensionHeaders = $header->getDimensions();
$metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
$rows = $report->getData()->getRows();
echo '<table border="1">';
for ($rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
$row = $rows[ $rowIndex ];
$dimensions = $row->getDimensions();
$metrics = $row->getMetrics();
echo '<tr>';
for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++)
{
echo '<td>' . ": " . $dimensions[$i] . "\n" .'</td>';
}
for ($j = 0; $j < count($metrics); $j++) {
$values = $metrics[$j]->getValues();
for ($k = 0; $k < count($values); $k++) {
$entry = $metricHeaders[$k];
echo '<td>' . ": " . $values[$k] . "\n" .'</td>' ;
}
echo '</tr>';
}
}
echo '</table>';
}
}
?>
我試過上面提供的代碼,但我得到了空白屏幕。我可以澄清一下,我應該在哪一行中插入你提供的代碼?道歉,新手在這裏。 – Ben
你有沒有得到它的工作? – Norgul