目前我正在嘗試使用 Google Analytics Data API v1 從 GA4 取得 json 資料。但是,返回的回應不是純 json 數據,相反,如果我只是使用 PHP 列印它,它會給我 {}。但是,使用預定義的方法,我們可以獲得該值。請問,有沒有辦法得到純json數據?
<?php putenv('GOOGLE_APPLICATION_CREDENTIALS=xxx.json'); require_once 'vendorautoload.php'; use GoogleAnalyticsDataV1betaBetaAnalyticsDataClient; use GoogleAnalyticsDataV1betaDateRange; use GoogleAnalyticsDataV1betaDimension; use GoogleAnalyticsDataV1betaMetric; use GoogleCloudBigQueryConnectionRest; $property_id = 'xxx'; // GA4 property ID // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. $client = new BetaAnalyticsDataClient(); // Make an API call. $response = $client->runReport([ 'property' => 'properties/' . $property_id, 'dateRanges' => [ new DateRange([ 'start_date' => '2022-06-30', 'end_date' => 'today', ]), ], 'dimensions' => [ new Dimension( [ 'name' => 'city', ] ), ], 'metrics' => [ new Metric( [ 'name' => 'activeUsers', ] ) ] ]); print 'Report result: ' . PHP_EOL; printVisitorsLocationInNumber($response); function printVisitorsLocationInNumber($resp) { foreach ($resp->getRows() as $row) { echo $row->getDimensionValues()[0]->getValue() . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL . '</br>';; } }
$response
是\Google\Analytics\Data\V1beta\RunReportResponse
的實例,它擴充自\Google\Protobuf\Internal\Message。因此,您可以使用相同的
serializeToJsonString()
方法。