У меня есть этот код для запуска и получения изображений с моего диска. Но я сталкиваюсь с проблемой каждый раз, когда я запускаю этот код.
function listF() { $result = array(); $tok = array(); $nextPageToken = NULL; do { try { $parameters = array(); if ($nextPageToken) { $parameters['pageToken'] = $nextPageToken; $parameters['q'] = "mimeType='image/jpeg' or mimeType='image/png'"; } $files = $this->service->files->listFiles($parameters); $tok[] = $nextPageToken; $result = array_merge($tok, $result, $files->getFiles()); $nextPageToken = $files->getNextPageToken(); } catch (Exception $e) { print "An error occurred: " . $e->getMessage(); $nextPageToken = NULL; } } while ($nextPageToken); return $result; }
Я получаю эту ошибку:
An error occurred: { "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "Invalid Value", "locationType": "parameter", "location": "pageToken" } ], "code": 400, "message": "Invalid Value" } }
На самом деле это не кажется мне незаконным. Возможно, вы сможете найти ошибку. благодаря
Я отвечу на вашу проблему nextPageToken
используя Javascript, просто обратите внимание на логику. У меня есть две функции listFile (), которые идентичны. Один выполняется при начальной загрузке, после загрузки страницы он показывает первые 10 из моих 100 файлов. Другой выполняется при каждом нажатии кнопки.
Первая функция для отображения inital 10 файлов.
//take note of this variable var nextToken ; function listFiles() { gapi.client.drive.files.list({ 'pageSize': 10, 'fields': "*" }).then(function(response) { //assign the nextPageToken to a variable to be used later nextToken = response.result.nextPageToken; // do whatever you like here, like display first 10 files in web page // . . . }); }
Вторая функция: эта функция запускается нажатием кнопки «Следующая страница», которая отображает последующие файлы с 11 на N.
function gotoNextPage(event) { gapi.client.drive.files.list({ 'pageSize': 10, 'fields': "*", 'pageToken': nextToken }).then(function(response) { //assign new nextPageToken to make sure new files are displayed nextToken = response.result.nextPageToken; //display batch of file results in the web page //. . . }); }