J'utilise l'API Google Drive PHP dans le projet Laravel (v9.0). Concernant la pagination, j'espère avoir le processus suivant :
Voici le code que j'utilise : pageToken
具有之前 Google Drive 调用中的 nextPageToken
值) ,Google 将引发错误:代码:400,消息:无效值,位置: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);Cependant, si je récupère toutes les pages avant de revenir au backend, cela semble fonctionner :
$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);Je ne comprends peut-être pas comment la pagination est utilisée dans l'API Google Drive, mais existe-t-il un moyen de paginer le contenu comme dans mon premier exemple ?
Utilisez les fonctions isset et empty pour vérifier si la valeur pageToken est valide