Seguí varios cientos de enlaces, la mayoría incluidos enlaces de stackoverflow, para intentar encontrar una solución a este problema, pero ninguno arrojó resultados.
Simplemente estoy tratando de que el servidor acceda a los detalles del cliente a través de Google. Es decir, obtener las Hojas de cálculo de Google del cliente. Seguí su documentación, pero en su mayor parte, está solo en el lado del cliente. Seguí las instrucciones para el lado del servidor, pero tiene trabajo incompleto. Descubrí que el método a seguir es que el cliente inicie sesión a través de OAuth2.0 y luego envíe el código recibido al servidor para que lo procese con su propio código de acceso. Eso es lo que estoy haciendo, sin embargo, cuando intento consultar cualquier dato, aparece ese error en el título. Aquí están los fragmentos de código, avíseme si hay algo que me falta. DEP mi representante.
servidor:
const Router=require("express").Router() const auth=require("../utils/auth") const fs= require("fs") const {OAuth2Client}=require("google-auth-library")//I tried with this library instead, and it will give the exact same error. const {google} = require('googleapis'); var auths=[] function oAuth2ClientGetToken(oAuth2Client, code) { return new Promise((resolve, reject) => { oAuth2Client.getToken(code, (err, token) => { // errors out here if (err) reject(err); resolve(token); }); }); } async function formAuthClient(code) { const {client_secret, client_id,redirect_uris} = JSON.parse(fs.readFileSync(__dirname+"/credentials.json")) const oAuth2Client = new google.auth.OAuth2( // form authObject client_id, client_secret,redirect_uris[1] ); // var oauth2Client = new OAuth2Client(client_id,client_secret,redirect_uris[1]); other method const token = await oAuth2ClientGetToken(oAuth2Client, code).catch(console.err); // oauth2Client.credentials=token other method of oauth2.0 oAuth2Client.setCredentials(token); return oAuth2Client; } Router.get("/",(req,res)=>{ res.render("home") }) Router.post("/sheet",async (req,res)=>{ try { const requestBody = { properties: { title:"hello" } }; var sheets= google.sheets({version:"v4", auth: auths[req.session.id]}) await sheets.spreadsheets.create(requestBody) } catch (error) { res.json(error) } }) Router.post("/login",(req,res)=>{ console.log("token: ",req.body.token); req.session.token=req.body.token console.log("req.session.id:",req.session.id); auths[req.session.id]=formAuthClient(req.body.token) res.status(200).json() }) module.exports=Routerlas secuencias de comandos del cliente son un botón simple que activará un comando "getOfflineAccess" y le pedirá al usuario que inicie sesión y luego envíe esos datos al servidor con "/ iniciar sesión". luego, una vez que se presiona otro botón, llamará "/ hoja". Agradezco toda ayuda con esto. Me quedé sin enlaces para hacer clic en tratar de resolver este problema