I am working on Spotify API integration using Django + React stack. When pausing a track, I am getting this error:
"PUT /spotify/pause-song HTTP/1.1" 403 2
Fetching track information is working, it’s just not the same thing with the pause.
views.py
class PlaySong(APIView):
def put(self, response):
room_code = self.request.session.get('room_code')
room = Room.objects.filter(code=room_code)[0]
if self.request.session.session_key == room.host or room.guest_can_pause:
res = play_song(room.host)
if res.status_code == 204:
return Response({}, status=status.HTTP_204_NO_CONTENT)
else:
return Response({}, status=res.status_code)
return Response({}, status=status.HTTP_403_FORBIDDEN)
utils.py
BASE_URL = "https://api.spotify.com/v1/me/"
def get_user_tokens(session_id):
user_tokens = SpotifyToken.objects.filter(user=session_id)
if user_tokens.exists():
return user_tokens[0]
else:
return None
def pause_song(session_id):
access_token = get_user_tokens(session_id).access_token
url = f"{BASE_URL}player/pause"
response = requests.put(url, {}, headers={
'Authorization': f'Bearer {access_token}'
})
return response