【发布时间】:2012-10-25 23:35:09
【问题描述】:
在 print_r($segments) 之后,我的数组的输出与此类似:
Array
(
[kind] => analytics#segments
[username] => account@gmail.com
[totalResults] => 2334
[startIndex] => 1
[itemsPerPage] => 1000
[items] => Array
(
[0] => Array
(
[id] => -1
[kind] => analytics#segment
[selfLink] => https://www.googleapis.com/analytics/v3/management/segments/gaid::-1
[segmentId] => gaid::-1
[name] => All Visits
[definition] =>
)
...
[999] => Array
(
[id] => -1
[kind] => analytics#segment
[selfLink] => https://www.googleapis.com/analytics/v3/management/segments/gaid::-1
[segmentId] => gaid::-1
[name] => All Visits
[definition] =>
)
)
)
这个数组是谷歌分析 API PHP 的输出,它显示的最大值是 1000 行,如 itemsPerPage 中所述em> 参数,但我确实有超过 1000 个,接近 2334 中提到的 totalResults > 参数。
有人知道如何强制它一次显示所有输出吗?
当我运行这个时:
$nextLink = $results->getNextLink()
? $results->getNextLink() : 'none';
print($nextLink);
Accoring to this documentation I have to use the parameter called 最大结果 to display more results per page, but I have no idea how to do so, no much documentation about it.
知道如何使用 max-results 参数或 link 获得其余结果吗?
【问题讨论】:
-
这不是
print_r问题 - 听起来像是 Google Analytics API 限制 -
@GabrielSantos 最好使用 API 提供的
getNextLink()和getPreviousLink()。如果有 10,001 个结果,也会出现同样的问题。 -
Google 分析每个请求只允许 10.000 行。您需要有创意并在后端使用分页,在发送到用户浏览器之前将所有行(执行多个请求)存储在一个数组中。
-
@mongotop 我添加了伪代码来演示,自己无法测试,不想发布我无法测试的代码。
-
@mongotop 如果您有一些特定的代码正在尝试,但它不起作用,可以将其作为 Update 部分添加到问题中,我们会看看我们可以做到。
标签: php arrays google-analytics-api