Soy bastante nuevo en el trabajo con API y actualmente estoy tratando de obtener algunos datos de la API de Spotify en un sitio web de Next.js. El problema es que el único punto final que me da datos son las 'pistas principales': ( https://api.spotify.com/v1/me/top/tracks
), todos los demás puntos finales los tengo he intentado da este error:
Request failed FetchError: invalid json response body at https://api.spotify.com/v1/me/player/recently-played reason: Unexpected token U in JSON at position 0
Esta es la función que estoy usando para obtener datos de la API:
const basic = Buffer.from(`${client_id}:${client_secret}`).toString("base64"); const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`; export default async function handler(req, res) { const response = await fetch(TOKEN_ENDPOINT, { method: "POST", headers: { Authorization: `Basic ${basic}`, "Content-Type": "application/x-www-form-urlencoded", }, body: querystring.stringify({ grant_type: "refresh_token", refresh_token, }), }) .then((response) => response.json()) .then((data) => { const access_token = data.access_token; return fetch(`https://api.spotify.com/v1/me/player/recently-played`, { method: "GET", headers: { Authorization: `Bearer ${access_token}`, }, }); }) .then((response) => response.json()) .catch((err) => { console.error("Request failed", err); }); return res.status(200).json(response); }
(Primero obteniendo el token de acceso, usando clientId y secret de env-variables, luego obteniendo datos de API usando dicho token)
¿Alguna idea de lo que estoy haciendo mal aquí? Toda ayuda es muy apreciada :)
Además: he agregado los ámbitos necesarios, ¡así que debería tener permiso para obtener los datos!