2016-01-15 23 views
3

我正在嘗試編寫一個Python腳本來通過Spotipy應用程序創建一個Spotify播放列表。我已經在Spotify的開發中心成功創建了一個應用程序,並將必要的變量輸入到了Spotipy的示例中(請參閱下文)。但是,腳本沒有正確授權。我嘗試過和沒有運行服務器,但無濟於事。有關於Stack的類似問題,但他們不提供完整的解決方案。任何建議都會非常有幫助。斑點不通過Oauth驗證?

這裏是我通過命令提示符收到消息:

用戶身份驗證需要與您的 Web瀏覽器的交互。一旦你輸入你的憑證並且 授權,你將被重定向到 一個網址。粘貼你所指向的網址到 完成授權。

請瀏覽這裏: https://accounts.spotify.com/authorize?scope=user-library-read&redirect_uri=None&response_type=code&client_id=xxxxx

輸入URL您重定向到:

這裏是正在運行的腳本。這與Spotipy提供的示例幾乎完全相同,並對爲Windows機器設置os變量進行了更改。

import pprint 
import sys 
import os 
import subprocess 
import spotipy 
import spotipy.util as util 
import requests 

clientId = 'client id here' 
clientSecret = 'client secret here' 
clientRedirect = 'http://localhost:8888/callback' 

username = 'username here' 
scope='user-library-read' 

os.environ["SPOTIPY_CLIENT_ID"] = clientId 
os.environ["SPOTIPY_CLIENT_SECRET"] = clientSecret 
os.environ["POTIPY_REDIRECT_URI"] = clientRedirect 

token = util.prompt_for_user_token(username, scope) 

if token: 
    sp = spotipy.Spotify(auth=token) 
    results = sp.current_user_saved_tracks() 
    for item in results['items']: 
     track = item['track'] 
     print track['name'] + ' - ' + track['artists'][0]['name'] 
else: 
    print "Can't get token for", username 
+2

這裏有一個錯字:'os.environ [「POTIPY_REDIRECT_URI」] = clientRedirect' –

回答

0

的應用是要求應包含哪些將被用作https://developer.spotify.com/web-api/authorization-guide/在STEP.3開始提到和URL應該是這樣的https://example.com/callback?code=NApCCg..BkWtQ&state=profile%2Factivity與向的access_token交換「代碼」的URL。我希望你能正確輸入你的憑證,否則你將永遠無法獲得進一步的代碼。

+0

有沒有辦法在瀏覽器中不打開新標籤的情況下捕獲url?自動化過程。 – mina

+0

@mina:當然,看看這個[鏈接]的第6章(https://media.readthedocs.org/pdf/spotipy/latest/spotipy.pdf) –

+0

第6章對自動化沒有幫助...我仍然需要複製粘貼自己在瀏覽器上打開的URL。或者我錯過了什麼? – mina