spotipy authorization code flow

前端 未结 4 1821
無奈伤痛
無奈伤痛 2020-12-15 00:32

I am using the Spotipy python library to interact with the Spotify web api. I have worked through the API and docs but I do not see a clear example that shows how the libra

相关标签:
4条回答
  • 2020-12-15 00:41

    If someone needs the working code here is my current.

    Just remember to change the client_id, etc. I put them in 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)
    
    0 讨论(0)
  • 2020-12-15 00:49

    When I was trying to do this none of these answers really got me there unfortunately. When I ended up figuring it out I detailed how in this post: https://stackoverflow.com/a/42443878/2963703 I was using Django as my backend but all the spotify api oauth stuff is done in javascript so it should still be very useful for you.

    0 讨论(0)
  • 2020-12-15 00:58

    I implemented a simple Authorization Code flow with the help of Spotipy. Maybe this is helpful for other people as well. Also on github: https://github.com/perelin/spotipy_oauth_demo

    Here is the code:

    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)
    
    0 讨论(0)
  • 2020-12-15 01:01

    The Spotipy library supports the Authorization Code flow, as documented here. For more information, you could also check out Spotipy's oAuth2 module and Util module.

    0 讨论(0)
提交回复
热议问题