google-drive-api - 出现错误:已超出未经验证使用的每日限制。继续使用需要注册
问题描述
尝试关注https://developers.google.com/drive/api/v3/quickstart/nodejs
我让它与谷歌工作区(G-Suite)一起工作,但是在玩了一些对谷歌驱动器API的不同调用时,我开始收到一条错误消息:
API 返回错误:
错误:已超出未经验证使用的每日限制。继续使用需要注册。
此消息表明我遇到了一些配额问题。然而,我只调用了大约 50 次 API,针对https://console.cloud.google.com/和https://console.developers.google.com/的工作时间没有产生新的见解。配额是 10K 呼叫,所以我不能只用 50 个呼叫就超过它...
我看到的与此相关的 Stack Overflow 响应似乎都不适用或不是最新的。
不幸的是,https://developers.google.com/drive/api/v3/handle-errors中缺少此错误。
解决方案
经过一天的工作,我意识到当在我的代码中本地提供给google.drive() API 的身份验证密钥未定义时,会发送这个神秘的响应。
似乎这个神秘的响应被谷歌 API 用作“通用错误消息”。
以下是导致此错误的一个示例,但还有无数其他示例 - 在调用google.drive() API 期间无法设置身份验证的任何代码都会产生相同的结果。
此示例代码由 google 提供,并且可以正常工作。
google.drive({version: 'v3', auth});
它起作用的原因是它转换(扩展)为:
google.drive({version: 'v3', auth: auth});
(这个扩展是由 Nodejs 隐式完成的)
使用以下代码将产生错误:
const drive = google.drive({version: 'v3'});
drive.files.list({}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
});
使用以下代码不会产生错误:
const drive = google.drive({version: 'v3', auth});
drive.files.list({}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
});
使用以下代码也不会产生错误(因为它显式扩展为与前一个相同):
const drive = google.drive({version: 'v3', auth: auth});
drive.files.list({}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
});
使用以下代码将产生错误(这是我的坏事):
var myAuth = auth;
const drive = google.drive({version: 'v3', myAuth});
drive.files.list({}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
});
使用以下代码将修复该错误:
var myAuth = auth;
const drive = google.drive({version: 'v3', auth: myAuth});
drive.files.list({}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
});
推荐阅读
- r - 如何从 R 中的时间提取价格并汇总每分钟的值?
- javascript - 数据表编辑器 yajra,创建按钮不起作用
- azure - Cosmos DB 分页提供成倍的页面记录
- javascript - 如何删除有重复的数组元素?
- sql - 从 Oracle DB 中的完整表数据中计算特定匹配
- c++ - 如何使用 Qt 在同一 UI 中添加菜单栏和按钮?
- opengl-es - OpenGL ES 3.1:可以在片段着色器中对深度缓冲区进行采样吗?
- flutter - Flutter google_maps_flutter 不显示位置按钮,即使 myLocationButtonEnabled 设置为 true
- javascript - 一个用于多个 div 的 javascript?
- vue.js - NuxtJS ScrollToTop 并重新访问页面