Spotipy没有通过Oauth验证?

时间:2016-01-15 16:17:29

标签: python spotify spotipy

我正在尝试编写一个Python脚本,通过Spotipy应用程序创建Spotify播放列表。我已成功在Spotify的开发中心创建了一个应用程序,并将必要的变量输入到Spotipy的示例中(见下文)。但是,脚本未正确授权。我已经尝试过运行和不运行服务器,但无济于事。 Stack上也有类似的问题,但它们不提供完整的解决方案。任何建议都会非常有帮助。

以下是我通过命令提示符收到的消息:

  

用户身份验证需要与您的互动     网页浏览器。输入凭据后     授权,您将被重定向到     一个网址。粘贴您指向的网址     完成授权。

     

请在这里导航:   https://accounts.spotify.com/authorize?scope=user-library-read&redirect_uri=None&response_type=code&client_id=xxxxx

     

输入您重定向到的网址:

这是正在运行的脚本。它与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

1 个答案:

答案 0 :(得分:0)

应用程序正在询问一个应该包含"代码的网址"这将用于与https://developer.spotify.com/web-api/authorization-guide/中的步骤3中提到的access_token进行交换,并且URL应如下所示https://example.com/callback?code=NApCCg..BkWtQ&state=profile%2Factivity。我希望您正确输入您的凭据,否则您将永远无法获得进一步的代码。