Javascript JS驱动器API:文件。返回500个内部服务器错误的列表

Javascript JS驱动器API:文件。返回500个内部服务器错误的列表,javascript,google-drive-api,google-client,Javascript,Google Drive Api,Google Client,更新 我从API浏览器(定义了“id”字段)获取工作请求(复制到cURL),并用成功请求(未定义“id”字段)中的API键替换URL和授权头中的API键。运行此请求失败。因此,当使用我自己的凭据时,完全相同的头(除了授权)和完全相同的请求(除了密钥)失败,错误为500。此外,这些相同的凭据能够向驱动器API发出其他请求,因此它们实际上是有效的 更新2 下面是从API资源管理器中获取的cURL请求,其中包含并删除了。当这些被替换为我自己的密钥/令牌时,请求返回一个500错误。从中删除“(id)”的

更新

我从API浏览器(定义了“id”字段)获取工作请求(复制到cURL),并用成功请求(未定义“id”字段)中的API键替换URL和授权头中的API键。运行此请求失败。因此,当使用我自己的凭据时,完全相同的头(除了授权)和完全相同的请求(除了密钥)失败,错误为500。此外,这些相同的凭据能够向驱动器API发出其他请求,因此它们实际上是有效的

更新2

下面是从API资源管理器中获取的cURL请求,其中包含并删除了。当这些被替换为我自己的密钥/令牌时,请求返回一个500错误。从中删除“(id)”的请求与我自己的密钥/令牌完全相同

curl'https://content.googleapis.com/drive/v2/files?q=trashed%3Dfalse+和+%27root%27+in+parents&fields=items(id)%2CnextPageToken&key='-H'授权:Bearer'-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\u 10\u 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\u 1)%20AppleWebKit%2F537.36%20(KHTML%20like%20Gecko)%20Chrome%2F40.0.2214.115%20Safari%2F537.36'-H'用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/40.0.2214.115 Safari/537.36'-H'参考:https://content.googleapis.com/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-静态%2F_uu%2Fjs%2Fk%3Doz.gapi.en.9OJnLZReRBQ.O%2Fm%3D_uuu功能\uuuuuuuu%2Fam%3DAQ%2Frt%3Dj%2Fd%3Dzcms%2Frs%3dagtcovqm6jixrxpidyyd-EV0zsQ'-H'X-JavaScript-User-Agent:google api JavaScript客户端/1.1.0-beta'-H'X-R埃弗雷尔:https://developers.google.com“--压缩的

我的令牌通过以下作用域进行授权: “”:“”:“”:“”:“”:“”:

原创帖子

几天前,在每次页面加载时运行的files.list查询开始时总是返回500(内部服务器错误)响应。我正在使用JS google客户端库运行files.list请求。通过API资源管理器运行的相同请求正在工作

我可以通过删除'fields'参数或将'fields'参数简化为'items,nextpGetOken'而不是'items(id),nextpGetOken'使files.list请求成功

运行请求的代码简化如下:

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资源管理器和页面发送的请求(已损坏和正在工作的版本)。除了API资源管理器中“q”参数的不同编码(以及一些标题…)之外,我看不到它们之间存在任何差异。如果在未指定“id”字段的情况下,不同的编码可以工作,那么使用API explorer编码版本替换请求中的“q”参数并不能解决此问题

从API Explorer-Works发送的请求

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

从页面发送的请求(带字段)-已断开

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

从页面发送的请求(无字段)-有效

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

我是否遗漏了一些明显的问题?我是否未能以某种方式正确编码字段参数(encodeURIComponent导致“无效请求”错误)?其他人是否可以重现相同的问题,或者他们已经看到了


谢谢!

查看chrome开发控制台中的http流量,并将其与使用更新的post发送的流量和请求进行比较,这些请求以前应该已经发布过。页面中工作和非工作请求之间的唯一区别是(id)字段,该字段在API资源管理器的工作请求中以相同的方式进行编码。在进一步探索之后,从API资源管理器获取准确的工作查询并替换为我自己的凭据,然后从服务器收到500个错误。这些相同的凭据能够发出其他file.list请求,因此它们绝对有效。From,项目子字段的编码为?fields=items%2Fid%2cnextpGetOkenthanks..他们现在可以用多个作用域重新处理此问题。对于回归,很抱歉。希望他们能很快解决问题。