googleAuth не конструктор, проблема с версией google-api - PullRequest
0 голосов
/ 16 февраля 2019

Следуя этому руководству по работе с электронными таблицами Google - http://voidcanvas.com/node-js-googleapis-v4-spreadsheet/ Я получаю сообщение об ошибке "googleAuth is not constructor".

При поиске в Интернете обнаружена новая версия google-auth-В библиотеке есть проблема со старым синтаксисом.При установке версии 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-адрес, который возвращает код, необходимый для завершения авторизации, и, в свою очередь, обновляет мойлист.

1 Ответ

0 голосов
/ 16 февраля 2019

Для более новых версий вам нужно использовать свойство OAuth2Client, которое вы можете получить при деструктуризации.Другие общие свойства auth или JWT:

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

См. Также https://www.npmjs.com/package/google-auth-library

...