我正在使用 Spotipy python 库与 Spotify web api 交互。我已经完成了 API 和文档,但我没有看到一个清楚的示例来说明该库如何支持授权代码流(https://developer.spotify.com/web-api/authorization-guide/#authorization-code-流)。
问问题
17526 次
4 回答
10
我在 Spotipy 的帮助下实现了一个简单的授权代码流程。也许这对其他人也有帮助。同样在 github 上:https ://github.com/perelin/spotipy_oauth_demo
这是代码:
from bottle import route, run, request
import spotipy
from spotipy import oauth2
PORT_NUMBER = 8080
SPOTIPY_CLIENT_ID = 'your_client_id'
SPOTIPY_CLIENT_SECRET = 'your_client_secret'
SPOTIPY_REDIRECT_URI = 'http://localhost:8080'
SCOPE = 'user-library-read'
CACHE = '.spotipyoauthcache'
sp_oauth = oauth2.SpotifyOAuth( SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET,SPOTIPY_REDIRECT_URI,scope=SCOPE,cache_path=CACHE )
@route('/')
def index():
access_token = ""
token_info = sp_oauth.get_cached_token()
if token_info:
print "Found cached token!"
access_token = token_info['access_token']
else:
url = request.url
code = sp_oauth.parse_response_code(url)
if code:
print "Found Spotify auth code in Request URL! Trying to get valid access token..."
token_info = sp_oauth.get_access_token(code)
access_token = token_info['access_token']
if access_token:
print "Access token available! Trying to get user information..."
sp = spotipy.Spotify(access_token)
results = sp.current_user()
return results
else:
return htmlForLoginButton()
def htmlForLoginButton():
auth_url = getSPOauthURI()
htmlLoginButton = "<a href='" + auth_url + "'>Login to Spotify</a>"
return htmlLoginButton
def getSPOauthURI():
auth_url = sp_oauth.get_authorize_url()
return auth_url
run(host='', port=8080)
于 2016-01-24T08:48:52.707 回答
3
如果有人需要这里的工作代码是我目前的。
只要记住更改client_id等。我将它们放在config.py中。
import spotipy
import spotipy.util as util
from config import CLIENT_ID, CLIENT_SECRET, PLAY_LIST, USER
import random
token = util.oauth2.SpotifyClientCredentials(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
cache_token = token.get_access_token()
spotify = spotipy.Spotify(cache_token)
results1 = spotify.user_playlist_tracks(USER, PLAY_LIST, limit=100, offset=0)
于 2017-08-22T07:28:45.463 回答
1
当我试图这样做时,不幸的是,这些答案都没有真正让我到达那里。当我最终弄清楚时,我在这篇文章中详细说明了如何:https ://stackoverflow.com/a/42443878/2963703 我使用 Django 作为我的后端,但是所有的 spotify api oauth 东西都是在 javascript 中完成的,所以它应该仍然是对你很有用。
于 2017-02-24T16:43:31.670 回答