Fix Spotify session token refresh (#66390)

This commit is contained in:
Franck Nijhof 2022-02-12 22:53:15 +01:00 committed by GitHub
parent cb7f7dff72
commit 10c7725a90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View File

@ -121,6 +121,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
raise ConfigEntryNotReady from err
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

@ -515,9 +515,7 @@ class SpotifyMediaPlayer(MediaPlayerEntity):
run_coroutine_threadsafe(
self._session.async_ensure_token_valid(), self.hass.loop
).result()
self._spotify_data[DATA_SPOTIFY_CLIENT] = Spotify(
auth=self._session.token["access_token"]
)
self._spotify.set_auth(auth=self._session.token["access_token"])
current = self._spotify.current_playback()
self._currently_playing = current or {}
@ -581,7 +579,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
media_content_type = media_content_type[len(MEDIA_PLAYER_PREFIX) :]