Ben çıkış Google Analytics API verileri için bir komut dosyası yazma ve Google Charts API kullanarak bir çubuk grafikte takın ediyorum. Ben URL böyle bir dize var, ben istenilen sonucu almak.
gaFeedData.php?y[]=2009&y[]=2010&m[]=1&m[]=2
Ben URL aşağıdaki dize Ancak, ben bir hata alıyorum: Fatal error: Cannot use string offset as an array in gaFeedData.php on line 56
(M [] = 8 m [] = 9 ile değiştirilebilir. Ne sebeple olursa olsun, m [] = 10, m [] = 11 ve m [] = 12 iş için.)
gaFeedData.php?y[]=2009&y[]=2010&m[]=8
Ayrıca GA does bu ay için veri var, unutmayın.
Benim PHP kodu dışında kalan kimlik bilgileri ile aşağıdaki gibidir:
_config.php:
<?php
$accountType = 'GOOGLE'; // DONT EDIT! // Account type
$source = 'report'; // DONT EDIT! // Application name
$accountName = 'user@gmail.com'; // User's email
$accountPass = 'password'; // User's password
$clientName = 'useratgmail'; // Client's name
$goalid = $_GET['goal'];
$startdate = $_GET['startdate'];
$enddate = $_GET['enddate'];
$y[0] = 0;
$m[0] = 0;
$y = $_GET["y"];
$m = $_GET["m"];
$URIAuth = 'https://www.google.com/accounts/ClientLogin';
$URIFeedAcct = 'https://www.google.com/analytics/feeds/accounts/default?prettyprint=true';
$URIFeedData = 'https://www.google.com/analytics/feeds/data?prettyprint=true';
?>
gaFeedData.php:
<?php
include("_config.php");
$TABLE_ID = 'ga:11111111';
foreach ($y as $yy) {
if ($yy%400==0) $leapyear='1';
elseif ($yy%100== 0) $leapyear='0';
elseif ($yy%4==0) $leapyear='1';
else $leapyear='0';
$month = array();
$month[01][dfirst] = $yy.'-01-01';
$month[01][dlast] = $yy.'-01-31';
$month[02][dfirst] = $yy.'-02-01';
if ($leapyear=='1') $month[02][dlast] = $yy.'-02-29';
else $month[02][dlast] = $yy.'-02-28';
$month[03][dfirst] = $yy.'-03-01';
$month[03][dlast] = $yy.'-03-31';
$month[04][dfirst] = $yy.'-04-01';
$month[04][dlast] = $yy.'-04-30';
$month[05][dfirst] = $yy.'-05-01';
$month[05][dlast] = $yy.'-05-31';
$month[06][dfirst] = $yy.'-06-01';
$month[06][dlast] = $yy.'-06-30';
$month[07][dfirst] = $yy.'-07-01';
$month[07][dlast] = $yy.'-07-31';
$month[08][dfirst] = $yy.'-08-01';
$month[08][dlast] = $yy.'-08-31';
$month[09][dfirst] = $yy.'-09-01';
$month[09][dlast] = $yy.'-09-30';
$month[10][dfirst] = $yy.'-10-01';
$month[10][dlast] = $yy.'-10-31';
$month[11][dfirst] = $yy.'-11-01';
$month[11][dlast] = $yy.'-11-30';
$month[12][dfirst] = $yy.'-12-01';
$month[12][dlast] = $yy.'-12-31';
foreach ($m as $mm) {
sleep(0.2);
$ch = curl_init($URIFeedData.'&ids='.$TABLE_ID.'&start-date='.$month[$mm][dfirst].'&end-date='.$month[$mm][dlast].'&metrics=ga:visits,ga:visitors,ga:pageviews,ga:timeOnSite'.'&alt=json');
$fp = fopen("$clientName.data.feed", "w");
$accountAuth = exec('awk /Auth=.*/ '.$clientName.'.auth');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: GoogleLogin $accountAuth","GData-Version: 2"));
curl_exec($ch);
curl_close($ch);
fclose($fp);
$jsonfile = fopen("$clientName.data.feed", "r");
$jsondata = fread($jsonfile, filesize("$clientName.data.feed"));
$output = json_decode($jsondata, 512);
$data[$yy][$mm][visits] = $output[feed]["dxp\$aggregates"]["dxp\$metric"][0][value];
echo $data[$yy][$mm][visits].", ";
}
}
?>