Spotipy flujo de código de autorización

Estoy utilizando la biblioteca de Python de Spotipy para interactuar con la api web de Spotify. He trabajado con la API y los documentos, pero no veo un ejemplo claro que muestre cómo la biblioteca admite el flujo de código de Autorización ( https://developer.spotify.com/web-api/authorization-guide/#authorization-code- flujo ).

Implementé un flujo de código de autorización simple con la ayuda de Spotipy. Tal vez esto sea útil para otras personas también. También en github: https://github.com/perelin/spotipy_oauth_demo

Aquí está el código:

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 = "Login to Spotify" return htmlLoginButton def getSPOauthURI(): auth_url = sp_oauth.get_authorize_url() return auth_url run(host='', port=8080) 

La biblioteca de Spotipy admite el flujo de código de autorización, tal como se documenta aquí . Para obtener más información, también puede consultar el módulo oAuth2 de Spotipy y el módulo Util .

Desafortunadamente, cuando intentaba hacer esto, ninguna de estas respuestas realmente me llevó allí. Cuando terminé de averiguarlo, detallé cómo en esta publicación: https://stackoverflow.com/a/42443878/2963703 Estaba usando Django como mi backend, pero todo lo relacionado con api oauth de spotify se hace en javascript, por lo que aún debería estar Muy útil para ti.

Si alguien necesita el código de trabajo aquí es mi actual.

Solo recuerde cambiar el client_id, etc. Los puse en 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)