【spotipy】ログインしたユーザーではなく、client idと紐づいたアカウントのデータにアクセスしてしまう

前提

Flask上で、Spotifyの非公式API、spotipyでログイン認証をしたい。ログイン後、そのユーザーのライブラリ情報を取得したいが、代わりにClient idと紐づいたアカウントのデータを取得してしまう。

根本の原因は、以下のコードでtoken_infoとtoken_testの返り値が同じであるからだと考えられる。

sp_oauth = create_spotify_oauth() code = request.args.get('code') token_info = sp_oauth.get_access_token(code) token_test = sp_oauth.get_access_token()

get_access_tokenに与えた引数、codeはログインしてFlaskアプリ上に戻ってきた時のURLから取得。

ためしたこと

ドキュメントを見ると、
get_access_token(as_dict=Truecheck_cache=True)

If a valid access token is in memory, returns it Else feches a new token and returns it
と書いていたので、なんとなく.cacheを消した。

すると、ログイン後、認証URLを複数のタブで開き、一つタブを消すたびにもう一つ開くというよくわからない挙動を始めた。

なぜ.cacheができて、何のために使われているかあまりわかっていません。中身は、token_infoと同じでした。

実現したいこと

ログインしたユーザのデータにアクセスできるようにしたい。そのためには、get_access_token(code)でログインしたユーザのトークン情報が取得できればいいと思われる。

よろしくお願いいたします。

コメントを投稿

0 コメント