我在 Laravel (v9.0) 项目中使用 Google Drive PHP API。关于分页,希望流程如下:
我面临的问题是,当前端请求下一页时(在下面的示例中,
pageToken
具有来自先前 Google Drive 调用的 nextPageToken
的值),Google 将引发错误:code: 400, message: Invalid Value, location: pageToken
。下面是我正在使用的代码:
$pageToken = request()->input('pageToken');
$optParams = [
'q' => '' . $parentQuery,
'pageSize' => $paginateSize,
'fields' => 'nextPageToken, files(id, name, parents)',
];
if ($pageToken) {
$optParams['pageToken'] = "'" . $pageToken . "'";
}
$response = $this->service->files->listFiles($optParams);
但是,如果我在后端获取所有页面,然后再返回它们,它似乎可以工作:
$optParams = [
'q' => '' . $parentQuery,
'pageSize' => $paginateSize,
'fields' => 'nextPageToken, files(id, name, parents)',
];
$files = [];
do {
$results = $this->service->files->listFiles($optParams);
$files = array_merge($files, $results->getFiles());
$pageToken = $results->getNextPageToken();
if ($pageToken) {
$optParams['pageToken'] = "'" . $pageToken . "'";
}
} while ($pageToken);
我可能误解了在 Google Drive API 中使用分页的方式,但是有没有办法像我的第一个示例那样对内容进行分页?