【问题标题】:googleAuth is not a constructor, google-api version problemgoogleAuth不是构造函数,google-api版本问题
【发布时间】:2023-03-26 17:37:01
【问题描述】:

按照本指南操作 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 is not a 构造函数”错误。

这是在 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,它返回我完成授权所需的代码,进而更新我的工作表。

【问题讨论】:

    标签: node.js google-sheets google-sheets-api google-auth-library


    【解决方案1】:

    对于较新的版本,您需要使用可以通过解构获得的 OAuth2Client 属性。其他常用属性有authJWT

    const {OAuth2Client} = require('google-auth-library');
    

    另见https://www.npmjs.com/package/google-auth-library

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 2011-03-13
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多