node.js - googleAuth不是构造函数,google-api版本问题
问题描述
按照本指南操作 google 电子表格 - http://voidcanvas.com/node-js-googleapis-v4-spreadsheet/ 我一直收到“googleAuth 不是构造函数”错误。
在网上搜索我发现新版本的 google-auth-library 与旧语法有问题。安装 0.12.0 版本让我进入“通过访问此 URL 授权应用程序:”部分,但提供的 URL 是一个损坏的链接,上面写着:
错误:invalid_request redirect_uri 的参数值无效:无效方案:urn:ietf:wg:oauth:2.0:oob
另一方面,尝试使用 google-auth-library 的当前(更新)版本,我找到了一个修复程序,说要更改这些行
let oauth = require('google-auth-library');
...
var oauth2Client = new oauth.OAuth2(clientId, clientSecret, redirectUrl);
但它创建了“oauth.OAuth2 不是构造函数”错误。
这是在 0.12.0 运行并返回错误 URL 的原始代码。
let fs = require('fs');
let readline = require('readline');
let googleAuth = require('google-auth-library');
...
authorize(credentials) {
var clientSecret = credentials.installed.client_secret;
var clientId = credentials.installed.client_id;
var redirectUrl = credentials.installed.redirect_uris[0];
var auth = new googleAuth();
var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);
这是在更新版本 + 修复中运行的代码
let fs = require('fs');
let readline = require('readline');
let oauth = require('google-auth-library');
...
authorize(credentials) {
var clientSecret = credentials.installed.client_secret;
var clientId = credentials.installed.client_id;
var redirectUrl = credentials.installed.redirect_uris[0];
///var auth = new googleAuth();
var oauth2Client = new oauth.OAuth2(clientId, clientSecret, redirectUrl);
我希望结果是一个好的 URL,它返回我完成授权所需的代码,进而更新我的工作表。
解决方案
对于较新的版本,您需要使用OAuth2Client
可以通过解构获得的属性。其他常见的属性是auth
or JWT
:
const {OAuth2Client} = require('google-auth-library');
推荐阅读
- image-segmentation - Fastai:使用自定义数据块/数据加载器时 learn.predict 中的错误消息
- javascript - Luxon 日期创建
- mysql - 错误 1452:在树结构中添加根时无法添加或更新子行
- reactjs - 从 React 中的 API 获取数据(单个对象)
- typescript - 从数组文字推断类型
- python - AWS Elastic Beanstalk Django 项目 502 nginx/1.20.0
- angular - 从服务链接到 http.post 订阅的组件时出错
- typescript - 在 URQL 客户端中添加订阅时出现 Web 套接字问题
- nginx - 如果创建了另一个资源,则自动更新 Kubernetes 资源
- reactjs - Bold Commerce 产品和订阅组连接