Я создал приложение на Django, которое использует Spotipy, библиотеку Python Spotify API, и использует команду spotipy.util.prompt_for_user_token()
как таковую для создания токена и доступа к моей частной библиотеке как таковой:
import spotipy
import spotipy.util as util
import os, ast
#Spotify API keys
scope = "playlist-read-private"
uir = "http://localhost:8000"
username = "<MY_USERNAME>"
spotify_uid = os.environ["SPOTIFY_UID"]
spotify_usec = os.environ["SPOTIFY_USEC"]
print "retrieved keys from OS"
#set up access
def get_access():
try:
token = util.prompt_for_user_token(username, scope, spotify_uid, spotify_usec, uir)
print "SUCCESS"
return spotipy.Spotify(auth=token)
except:
print "FAILED TO LOAD"
Я бы хотел, чтобы приложение имело логин в пользовательском интерфейсе вместо жестко заданного логина, но я не могу понять, как это сделать.
На данный момент у меня есть кнопка входа в систему, которая пытается вызвать перенаправление страницы входа через Javascript, вызывая приведенный выше код с параметром имени пользователя, но при этом открывается новая страница, и в консоли отображается следующее:
User authentication requires interaction with your
web browser. Once you enter your credentials and
give authorization, you will be redirected to
a url. Paste that url you were directed to to
complete the authorization.
Opening https://accounts.spotify.com/authorize?scope=playlist-read- private&redirect_uri=http%3A%2F%2Flocalhost%3A8000&response_type=code&client_id=<CLIENT_ID> in your browser
Enter the URL you were redirected to: [30/Jun/2016 15:53:54] "GET /?code=<TOKEN>HTTP/1.1" 200 2881
примечание: текст в скобках в каратах был заменен, так как это были закрытые ключи.
Я бы хотел, чтобы он имел функциональность, аналогичную тому, как этот веб-сайт обрабатывает логины: http://static.echonest.com/SortYourMusic/