|
|
- import fetch from "isomorphic-unfetch";
- import { stringify } from "querystring";
-
- const {
- SPOTIFY_CLIENT_ID: client_id,
- SPOTIFY_CLIENT_SECRET: client_secret,
- SPOTIFY_REFRESH_TOKEN: refresh_token,
- } = process.env;
-
- const basic = Buffer.from(`${client_id}:${client_secret}`).toString("base64");
- const Authorization = `Basic ${basic}`;
-
- async function getAuthorizationToken() {
- const url = new URL("https://accounts.spotify.com/api/token");
- const body = stringify({
- grant_type: "refresh_token",
- refresh_token,
- });
- const response = await fetch(`${url}`, {
- method: "POST",
- headers: {
- Authorization,
- "Content-Type": "application/x-www-form-urlencoded",
- },
- body,
- }).then((r) => r.json());
-
- return `Bearer ${response.access_token}`;
- }
-
- const NOW_PLAYING_ENDPOINT = `https://api.spotify.com/v1/me/player/currently-playing`;
- export async function nowPlaying() {
- const Authorization = await getAuthorizationToken();
- const response = await fetch(NOW_PLAYING_ENDPOINT, {
- headers: {
- Authorization,
- },
- });
- const { status } = response;
- if (status === 204) {
- return {};
- } else if (status === 200) {
- const data = await response.json();
- return data;
- }
- }
|