Mi backend genera access_token con el siguiente controlador de redirección:
const logged = async (req: Request, res: Response) => { const code = (req.query.code as string) || null; const state = (req.query.state as string) || null; const error = (req.query.error as string) || null; const oauth2Client = new youtube.auth.OAuth2( GOOGLE_CLIENT_ID, GOOGLE_SECRET, GOOGLE_REDIRECT_URI, ); const { tokens: { access_token }} = await oauth2Client.getToken(code); res.send({ access_token }); }; El código devuelto es similar a: "ya29.<MUCH_MORE_CHARACTERS_HERE>_BtA0163"
Luego, en otro lugar, estoy tratando de crear un cliente con este token de acceso como este:
const youtube = require("@googleapis/youtube"); const youtubeApi = youtube.youtube({ version: "v3", auth: "ya29.<MUCH_MORE_CHARACTERS_HERE>_BtA0163", });(Por cierto, soy consciente de que podría obtener el cliente en el controlador de redirección. Simplemente no quiero)
Pero cada vez que trato de acceder a algo, me da error:
code: 400, errors: [ { message: 'API key not valid. Please pass a valid API key.', domain: 'global', reason: 'badRequest' } ]Creo que su objetivo es el siguiente.
En su guión, ¿qué tal la siguiente modificación?
const youtube = require("@googleapis/youtube"); const youtubeApi = youtube.youtube({ version: "v3", auth: "ya29.<MUCH_MORE_CHARACTERS_HERE>_BtA0163", }); const { google } = require("googleapis"); const auth = new google.auth.OAuth2(); auth.setCredentials({ access_token: "ya29.<MUCH_MORE_CHARACTERS_HERE>_BtA0163" }); const youtubeApi = google.youtube({ version: "v3", auth });