我试图从Spotipy文档中运行一些简单的代码:
scope = 'user-library-read'
if len(sys.argv) > 1:
username = sys.argv[1]
else:
print ("Usage: %s username" % (sys.argv[0],))
sys.exit()
token = util.prompt_for_user_token(username, scope)
我已经尝试通过运行在终端(Ubuntu)中设置我的凭据:
$ export SPOTIPY_CLIENT_ID='[my id]'
$ export SPOTIPY_CLIENT_SECRET='[my secret]'
$ export SPOTIPY_REDIRECT_URI='localhost:8888/callback'
不过,我明白了:
You need to set your Spotify API credentials. You can do this by
setting environment variables like so:
export SPOTIPY_CLIENT_ID='your-spotify-client-id'
export SPOTIPY_CLIENT_SECRET='your-spotify-client-secret'
export SPOTIPY_REDIRECT_URI='your-app-redirect-url'
Get your credentials at
https://developer.spotify.com/my-applications
---------------------------------------------------------------------------
SpotifyException Traceback (most recent call last)
<ipython-input-13-e24370a9caf8> in <module>()
7 sys.exit()
8
----> 9 token = util.prompt_for_user_token(username, scope)
/home/user/anaconda3/envs/Python3/lib/python3.6/site-packages/spotipy/util.py in prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri)
45 https://developer.spotify.com/my-applications
46 ''')
---> 47 raise spotipy.SpotifyException(550, -1, 'no credentials set')
48
49 sp_oauth = oauth2.SpotifyOAuth(client_id, client_secret, redirect_uri,
SpotifyException: http status: 550, code:-1 - no credentials set
我做错了什么?我还没有找到一个如何解决这个问题的简洁方法。
提前感谢您的帮助。
答案 0 :(得分:3)
如果您正在努力使用环境变量,可以尝试使用configparser
代替:
import configparser
import spotipy
import spotipy.oauth2 as oauth2
config = configparser.ConfigParser()
config.read('config.cfg')
client_id = config.get('SPOTIFY', 'CLIENT_ID')
client_secret = config.get('SPOTIFY', 'CLIENT_SECRET')
auth = oauth2.SpotifyClientCredentials(
client_id=client_id,
client_secret=client_secret
)
token = auth.get_access_token()
spotify = spotipy.Spotify(auth=token)
config.cfg
应如下所示:
[SPOTIFY]
CLIENT_ID=xxxx
CLIENT_SECRET=xxxx
如果您正在使用git
存储库添加:
*.cfg
到.gitignore
,因此您的密钥不会包含在回购邮件中。