Node.js NodeJS-自定义方案URI不允许用于';网络';客户端类型

Node.js NodeJS-自定义方案URI不允许用于';网络';客户端类型,node.js,oauth-2.0,google-api,Node.js,Oauth 2.0,Google Api,我试图将Oauth2与googleapis一起使用,但我遇到了一些类似的错误。 我发现有人犯了同样的错误,但他们使用的是IOS,在这种情况下我使用的是NodeJS 我确实遵循这个例子: 这是我的代码: const { google } = require('googleapis'); const express = require('express') const OAuth2Data = require('./google_key.json') const app = express()

我试图将Oauth2与googleapis一起使用,但我遇到了一些类似的错误。 我发现有人犯了同样的错误,但他们使用的是IOS,在这种情况下我使用的是NodeJS

我确实遵循这个例子:

这是我的代码:

const { google } = require('googleapis');
const express = require('express')
const OAuth2Data = require('./google_key.json')

const app = express()

const CLIENT_ID = OAuth2Data.client.id;
const CLIENT_SECRET = OAuth2Data.client.secret;
const REDIRECT_URL = OAuth2Data.client.redirect

const oAuth2Client = new google.auth.OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL)
var authed = false;

app.get('/', (req, res) => {
    if (!authed) {
        const url = oAuth2Client.generateAuthUrl({
            access_type: 'offline',
            scope: 'https://www.googleapis.com/auth/gmail.readonly'
        });

        res.redirect(url);
    } else {
        const gmail = google.gmail({ version: 'v1', auth: oAuth2Client });
        gmail.users.labels.list({
            userId: 'me',
        }, (err, res) => {
            if (err) return console.log('The API returned an error: ' + err);
            const labels = res.data.labels;
            if (labels.length) {
                console.log('Labels:');
                labels.forEach((label) => {

                });
            } else {

            }
        });
        res.send('Logged in')
    }
})

app.get('/auth/google/callback', function (req, res) {
    const code = req.query.code
    if (code) {
        oAuth2Client.getToken(code, function (err, tokens) {
            if (err) {
                console.log('Error authenticating')
                console.log(err);
            } else {
                console.log('Successfully authenticated');
                oAuth2Client.setCredentials(tokens);
                authed = true;
                res.redirect('/')
            }
        });
    }
});

const port = process.env.port || 3000
app.listen(port, () => console.log(`Server running at ${port}`));
和凭证文件:
google_key.json

{
    "client": {
        "id": "xxx-rm7s51vmr320brk5b5mrhopgma0e65o9.apps.googleusercontent.com",
        "secret": "nIMQpHo6LRMs128Hp8sjh6-bxxxx",
        "redirect": "testauth.com:3000"
    },
    "credentials": {
        "access_token": "your access_token",
        "token_type": "Bearer",
        "expires_in": 3600,
        "refresh_token": "your refresh_token"
    }
}
任何帮助