Google api php client 如何使用结果的'nextLink'属性?

Google api php client 如何使用结果的'nextLink'属性?,google-api-php-client,Google Api Php Client,查询结果对象返回时,将nextLink设置为下一页结果的URL作为字符串或null,具体取决于当前页之后是否有另一页。文档对此非常清楚,但是没有关于如何获取该链接并对下一页提出另一个请求的内容 我一直在挖掘源代码,只发现似乎除了一个布尔值告诉我还有更多值之外,真的没有任何方法可以利用这个值。留下这样一个明显的松散的结尾,即使是在测试版API中,听起来也不像谷歌,所以我一定是错过了什么 按照我的代码设置方式,我不能只重用生成初始请求的请求数据。我有单独的逻辑来发出初始请求,并将结果集解析为可用的形

查询结果对象返回时,将
nextLink
设置为下一页结果的URL作为字符串或null,具体取决于当前页之后是否有另一页。文档对此非常清楚,但是没有关于如何获取该链接并对下一页提出另一个请求的内容

我一直在挖掘源代码,只发现似乎除了一个布尔值告诉我还有更多值之外,真的没有任何方法可以利用这个值。留下这样一个明显的松散的结尾,即使是在测试版API中,听起来也不像谷歌,所以我一定是错过了什么


按照我的代码设置方式,我不能只重用生成初始请求的请求数据。我有单独的逻辑来发出初始请求,并将结果集解析为可用的形式。这一点,并且知道链接是公开的,好像它是用来暗示有一种比修改初始请求更干净的方法。只是,我该怎么做呢?

我有些东西似乎很管用。最重要的一点是在底部,在那里我使用
nextLink
并使用片段进行新的查询。这并不理想,但它比手动卷曲效果更好,其他在线工具似乎都表明了这一点
Google\u Service\u Analytics\u GaData当然会因使用哪种服务而有所不同

do {
    $rows = $results->getRows();

    foreach ($rows as $row) {
        $record = array();

        foreach ($row as $i => $field) {
            $name = $headers[$i]->name;

            switch($headers[$i]->dataType) {
                case 'FLOAT':
                    $record[$name] = (float) $field;
                    break;
                case 'INTEGER':
                    $record[$name] = (int) $field;
                    break;
                default:
                    $record[$name] = (string) $field;
            }
        }

        $records[] = $record;
    };

    $nextLink = $results->getNextLink();

    if ($nextLink) {
        /* The GA API doesn't have anything to actually USE The link
         * they so helpfully supply, so we have to disassemble it and
         * make a new query off of it. Internally, 
         * $this->gaService->data_ga calls $this->gaService->call.
         * These are on `Google_Service_Analytics_DataGa_Resource` and
         * `Google_Service_Resource`, respectively.
         */
        $options = [];
        parse_str(substr($nextLink, strpos($nextLink, '?') + 1), $options);

        $results = $this->gaService->data_ga->call('get', [$options], "Google_Service_Analytics_GaData");
    }
} while ($nextLink);

我想您可能会特别关注contacts API。您可能希望尝试卷曲该新链接,以查看是否得到结果。我最近看过了。我还认为该对象上可能有一个getNext()调用,实际上是分析API。这些代码在不同的服务中应该是通用的,因为
Google\u Service\u Analytics\u DataGa\u Resource
继承了几乎所有的
Google\u Service\u Resource
。唯一的函数是
get
(在GA对象上)和
call
(在超类上)
get
只是为
call
设置一些参数,然后调用它。