Перезагрузить токен Spotify во время выполнения обычным методом авторизации - PullRequest
1 голос
/ 31 марта 2019

Итак, я перебираю огромный файл .csv, в каждой строке которого содержится название песни и имя исполнителя.Для каждой из этих строк я должен записать в другой файл идентификатор дорожки этой песни.Я запускаю программу, но через час я получаю эту ошибку:
"Токен доступа истек"
Я читал, и похоже, что токен истекает через час.Можно ли как-нибудь перезагрузить токен во время исполнения?
Это функция, которую я написал для получения идентификатора песни

def getSongId(artist, title, songMap):
index = artist + title
trackId = 'null'

try:
    trackId = songMap[index]
    print("HashMap used")
except KeyError:
    try:
        resultats = spotify.search(q='artist:' + artist + ' track:' + title, type='track')
        trackId = resultats['tracks']['items'][0]['id']
        songMap[index] = trackId
    except IndexError:
        trackId = 'null'
return trackId, songMap  

Это ошибка, которую я получаю:

spotipy.client.SpotifyException: статус http: 401, код: -1 - https://api.spotify.com/v1/search?q=artist%3AZadye+Wolf+track%3AHustler&limit=10&offset=0&type=track: Срок действия маркера доступа истек

Большое спасибо

1 Ответ

0 голосов
/ 31 марта 2019

Простым решением было бы перехватить исключение по истечении срока действия токена и обновить токен перед продолжением.

try:
    result = spotify.search(...)
except spotify.client.SpotifyException as e:
    token = refresh_token(...)
else:
   # normal flow
...