2014-06-28 37 views
4

我克隆並安裝了Paul Lamere的Python wrapper for the Spotify Web API通過python setup.py install,但我似乎無法正確運行一些示例。Spotipy(Spotify的Web API Python包裝器)示例失敗

具體而言,當我嘗試運行user_playlists_contents.pyuser_starred_playlist.py時,會啓動瀏覽器,然後導向Spotify登錄頁面。登錄後,我在瀏覽器中看到一個Spotify錯誤,它只顯示:「糟糕!出錯了。」腳本詢問我被重定向到的URL,但輸入登錄頁面的URL和錯誤頁面的URL(顯然)在終端內觸發錯誤:spotipy.oauth2.SpotifyOauthError: Bad Request

起初,我在使用Facebook連接Spotify帳戶並在出現提示時通過Facebook登錄到Spotify,所以我認爲這可能是一個問題。但是,即使在創建新的僅限電子郵件的Spotify帳戶並在這個新的僅限電子郵件的用戶名上運行腳本後,我也得到了相同的結果。

我也試過在我的Spotify的開發人員帳戶註冊一個新的應用程序並使用其CLIENT_IDCLIENT_SECRET,並在examples/util.pyREDIRECT_URI但這似乎並沒有做任何事情。無論如何修改examples/util.py是必要的。

想這可能是一個瀏覽器的問題我也重置我的瀏覽器(Chrome),之後沒有工作,我嘗試切換到Safari瀏覽器的默認瀏覽器,但也沒有采取任何行動。

這兩個腳本都依賴於prompt_for_user_token(),它在examples/util.py中定義,似乎是事情出錯的地方。

我在做什麼錯?我錯過了一些顯而易見的事情嗎?提前致謝。

+1

我想你應該報告此作爲其GitHub上項目的問題,而不是使用StackOverflow上。這將通知項目的維護者,並能夠更好地幫助你。 –

+0

@JMPerez我可以做到這一點。我首先嚐試了StackOverflow,但因爲我認爲這是我做錯的事情,而不是項目的錯誤。 – acannon828

回答

3

prompt_for_user_token方法看起來如下:

def prompt_for_user_token(username, scope=None): 
    ''' prompts the user to login if necessary and returns 
     the user token suitable for use with the spotipy.Spotify 
     constructor 
    ''' 

    client_id = os.getenv('CLIENT_ID', 'YOUR_CLIENT_ID') 
    client_secret = os.getenv('CLIENT_SECRET', 'YOUR_CLIENT_SECRET') 
    redirect_uri = os.getenv('REDIRECT_URI', 'YOUR_REDIRECT_URI') 
    . 
    . 

這就需要你在執行例如之前設置CLIENT_ID,CLIENT_SECRET和REDIRECT_URI環境變量。您在Spotify Developer Site

在Unix中My Applications部分通過創建一個應用程序獲取這些值,您可以設置在命令行環境變量如下:

export CLIENT_ID={yourclient} 
export CLIENT_SECRET={yoursecret} 
export REDIRECT_URI={your redirect uri} 

然後,你需要複製和粘貼完整的URL你被重定向到瀏覽器以繼續。

1

我有一個類似的問題,發現至少有它的解決方案工作。見here。我得到這個通過將client_idclient_secretredirect_uri如agruments在util.prompt_for_user_token工作。我不得不復制並粘貼整個 URL包括代碼。我根本沒有和util.py混在一起。

+0

考慮將內容的關鍵要素,這已鏈接讓你的答案都是獨立的。 – J0e3gan