Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
Acceda a la respuesta de Node.JS Post Request

Estoy tratando de entender el flujo de credenciales de cliente de la API de Spotify y en su documentación tienen esta forma de obtener el token de acceso:

 var client_id = 'CLIENT_ID'; var client_secret = 'CLIENT_SECRET'; const authOptions = { url: "https://accounts.spotify.com/api/token", headers: { "Authorization": "Basic " + new Buffer.from(clientID + ":" + clientSecret).toString("base64"), "Content-Type": "application/x-www-form-urlencoded", }, form: { grant_type: "client_credentials", }, json: true, }; request.post(authOptions, function(error, response, body) { if (!error && response.statusCode === 200) { var token = body.access_token; } });

Ahora estoy tratando de obtener ese token y exportarlo o usarlo en las llamadas a la API, pero haga lo que haga, no puedo acceder a esa declaración.

Poner el POST en una variable o función y llamarlo da como resultado undefined .

Esto es lo que estoy tratando de lograr:

 import authOptions from "./credentials.js"; import pkg from "request"; const { post } = pkg; const Spotify = { getAccessToken() { post(authOptions, function (error, response, body) { if (!error && response.statusCode === 200) { const token = body.access_token; return token; } }); }, async search(input) { const accessToken = Spotify.getAccessToken(); const response = await fetch( `https://api.spotify.com/v1/search?q=${input}&type=artist`, { headers: { "Authorization": `Bearer ${accessToken}`, "Content-Type": "application/json", }, } ); const data = await response.json(); console.log(data); }, }; export default Spotify;

Sin embargo, por supuesto, no se devolvió ningún token de acceso de esa solicitud de publicación.

¿Hay alguna forma de convertir ese fragmento de código en Async/Await ?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes crear una nueva promesa:

 async function getAccessToken(){ return new Promise((resolve, reject) => { post(authOptions, function (error, response, body) { if(error){ reject(error); } else if (response.statusCode === 200) { const token = body.access_token; resolve(token); } }); }); };

La resolución/rechazo le permite devolver ese valor cuando se llama a la devolución de llamada, y pasa el error a la persona que llama para que lo maneje. Y puede usar este formato para prometer cualquier función basada en devolución de llamada, llamándola dentro de una promesa y usando resolver/rechazar para devolver el valor.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda