刷新令牌发现

时间:2018-02-20 11:00:20

标签: python spotify spotipy

我正在使用 spotipy Spotify 中使用 python 检索一些曲目。因此,我收到令牌到期错误,我想刷新我的令牌。但我不明白如何从spotipy获取刷新令牌。

是否有另一种刷新令牌或重新创建令牌的方法?

谢谢。

1 个答案:

答案 0 :(得分:2)

Spotipy使用访问令牌的粗略过程是:

  1. 从缓存中获取令牌(实际上不仅仅是访问令牌,还有刷新和失效日期信息)
  2. 如果令牌在缓存中且已过期,请将其刷新
  3. 如果令牌不在缓存中,那么prompt_for_user_token()将处理您在浏览器中完成OAuth流程,然后将其保存到缓存中。
  4. 因此,如果您向Spotipy请求访问令牌(例如使用prompt_for_user_token()或直接设置SpotifyOAuth对象),它将自动刷新,并且它先前已缓存了访问令牌/刷新令牌。默认情况下,缓存位置应该在工作目录中.cache-<username>,因此您可以在那里手动访问令牌。

    如果您向Spotipy Spotify()客户端提供auth param进行授权,则无法自动刷新访问令牌,我认为它将在大约一小时后过期。您可以提供client_credentials_manager,它将从中请求访问令牌。实现client_credentials_manager对象的唯一要求是它提供get_access_token()方法,该方法不接受参数并返回访问令牌。

    我在前一段时间用叉子here's the modification to the SpotifyOAuth object尝试了这一点,以允许它充当client_credentials_managerhere's the equivalent of prompt_for_user_token(),返回您可以传递的SpotifyOAuth对象以Spotipy Spotify()客户端作为凭证管理员参数。