JS Drive API: Files.List, возвращающий 500 внутренних ошибок сервера

Обновить

Я взял рабочий запрос (скопированный в cURL) из проводника API (с определенным полем 'id') и заменил ключ API в заголовке URL и авторизации на ключи из успешного запроса (без определенного поля 'id'), Выполнение этого запроса не удалось. Таким образом, одни и те же заголовки (кроме авторизации) и точно такой же запрос (кроме ключа) не работают при использовании моих собственных учетных данных с ошибкой 500. Кроме того, эти же учетные данные могут выполнять другие запросы к API накопителя, поэтому они действительно действительны.

Обновление 2

Вот запрос cURL, взятый из API Explorer с и удаленный. Когда они заменяются моим собственным ключом / токеном, запрос возвращает ошибку 500. Точно такой же запрос с удаленным из него "(id)", однако, работает с моим собственным ключом / токеном.

curl 'https://content.googleapis.com/drive/v2/files?q=trashed%3Dfalse+and+%27root%27+in+parents&fields=items(id)%2CnextPageToken&key=<KEY>' -H 'Authorization: Bearer <TOKEN>' -H 'X-Goog-Encode-Response-If-Executable: base64' -H 'X-Origin: https://developers.google.com' -H 'X-ClientDetails: appVersion=5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10_1)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F40.0.2214.115%20Safari%2F537.36&platform=MacIntel&userAgent=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10_1)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F40.0.2214.115%20Safari%2F537.36' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36' -H 'Referer: https://content.googleapis.com/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.9OJnLZReRBQ.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Ft%3Dzcms%2Frs%3DAGLTcCOvQmx_voM6JiXRxPIdYyD-EV0zsQ' -H 'X-JavaScript-User-Agent: google-api-javascript-client/1.1.0-beta' -H 'X-Referer: https://developers.google.com' --compressed

Мой токен авторизован в следующих областях: " https://www.googleapis.com/auth/drive.file": " https://www.googleapis.com/auth/userinfo.email": " https://www.googleapis.com/auth/drive.install":" https://www.googleapis.com/auth/contacts.readonly":" https://www.googleapis.com/auth/drive.appdata":" https://www.googleapis.com/auth/plus.me":" https://www.googleapis.com/auth/drive.metadata.readonly":" https://www.googleapis.com/auth/gmail.readonly"

Оригинальный пост

Пару дней назад запрос files.list, который выполнялся при каждой загрузке страницы, всегда возвращал 500 ответов (Внутренняя ошибка сервера). Я использую клиентскую программу JS google для запуска запроса files.list. Тот же запрос, выполняемый через проводник API, работает.

Я могу сделать запрос files.list успешным, либо удалив параметр 'fields', либо упростив параметр 'fields', чтобы он был просто 'items, nextPageToken', а не 'items(id),nextPageToken'.

Код, выполняющий запрос, упрощен ниже:

var request = gapi.client.drive.files.list(
{
    fields: 'items(id),nextPageToken',
    maxResults: 50,
    q: "trashed=false and 'root' in parents",
    pageToken: undefined
});

...

// Async
request.execute();

Вот запросы, отправленные из API Explorer и со страницы (сломанная и рабочая версия). Я не вижу различий между ними, кроме отличной кодировки параметра 'q' из проводника API (и некоторых заголовков...). При условии, что другая кодировка работает без указания поля id, а замена параметра q в запросе версией, закодированной в API explorer, не решает проблему.

Запрос отправлен из API Explorer - Работает

https://content.googleapis.com/drive/v2/files?maxResults=50&q=trashed%3Dfalse+and+%27root%27+in+parents&fields=items(id)%2CnextPageToken&key=<API KEY>

Запрос отправлен со страницы (с полями) - сломан

https://content.googleapis.com/drive/v2/files?maxResults=50&q=trashed%3Dfalse%20and%20%27root%27%20in%20parents&fields=items(id)%2CnextPageToken&key=<API KEY>

Запрос отправлен со страницы (без полей) - Работы

https://content.googleapis.com/drive/v2/files?maxResults=50&q=trashed%3Dfalse%20and%20%27root%27%20in%20parents&fields=items%2CnextPageToken&key=<API_KEY>

Я что-то упускаю здесь очевидное? Не удается как-то правильно закодировать параметр fields (encodeURIComponent вызывает ошибки "Invalid Request")? Может кто-то воспроизвести ту же проблему, или они уже видят это?

Спасибо!

0 ответов

Другие вопросы по тегам