Fix Spotify session token refresh (#66386)

This commit is contained in:
Franck Nijhof 2022-02-12 17:13:32 +01:00 committed by GitHub
parent 840d33f271
commit ba83648d27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 3 deletions

View File

@ -107,6 +107,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
raise ConfigEntryNotReady
async def _update_devices() -> list[dict[str, Any]]:
if not session.valid_token:
await session.async_ensure_token_valid()
await hass.async_add_executor_job(
spotify.set_auth, session.token["access_token"]
)
try:
devices: dict[str, Any] | None = await hass.async_add_executor_job(
spotify.devices

View File

@ -172,7 +172,11 @@ async def async_browse_media_internal(
partial(library_payload, can_play_artist=can_play_artist)
)
await session.async_ensure_token_valid()
if not session.valid_token:
await session.async_ensure_token_valid()
await hass.async_add_executor_job(
spotify.set_auth, session.token["access_token"]
)
# Strip prefix
if media_content_type:

View File

@ -7,7 +7,7 @@ from datetime import timedelta
import logging
import requests
from spotipy import Spotify, SpotifyException
from spotipy import SpotifyException
from yarl import URL
from homeassistant.components.media_player import BrowseMedia, MediaPlayerEntity
@ -367,7 +367,7 @@ class SpotifyMediaPlayer(MediaPlayerEntity):
run_coroutine_threadsafe(
self.data.session.async_ensure_token_valid(), self.hass.loop
).result()
self.data.client = Spotify(auth=self.data.session.token["access_token"])
self.data.client.set_auth(auth=self.data.session.token["access_token"])
current = self.data.client.current_playback()
self._currently_playing = current or {}