首页 > 解决方案 > Google Colab - Spotipy 没有将我重定向到指定的 redirect_uri

问题描述

我想使用 Spotipy python 包来试验 Spotify API。

因此,首先,在我的 Spotify Developer 应用程序中, 我已将 redirect_uri 设置为https://example.com/callback/

这是我试图在 Google Colab 笔记本上运行的代码

import pandas as pd
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials

spotify_details = {
    'client_id' : '<hidden>',
    'client_secret':'<hidden>',
    'redirect_uri':'https://example.com/callback/'}

scope = "user-library-read user-follow-read user-top-read playlist-read-private" 

sp = spotipy.Spotify(
        auth_manager=spotipy.SpotifyOAuth(
          client_id=spotify_details['client_id'],
          client_secret=spotify_details['client_secret'],
          redirect_uri=spotify_details['redirect_uri'],    
          scope=scope))

results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
    track = item['track']
    print(idx, track['artists'][0]['name'], " – ", track['name'])

这是我看到的输出:

在此处输入图像描述

但是我的浏览器不会将我重定向到任何 URL 以让我接收身份验证令牌

我究竟做错了什么?

标签: pythonjupyter-notebookgoogle-colaboratoryspotifyspotipy

解决方案


Colab 是一个无浏览器环境,因此按照常见问题解答中的建议,您应该添加参数

open_browser=False

当您实例化您的 spotipy.SpotifyOAuth 对象时:

sp = spotipy.Spotify(
        auth_manager=spotipy.SpotifyOAuth(
          client_id=spotify_details['client_id'],
          client_secret=spotify_details['client_secret'],
          redirect_uri=spotify_details['redirect_uri'],    
          scope=scope, open_browser=False))

这样,notebook 就会打印出你可以手动打开的 URL: 在此处输入图像描述


推荐阅读