Не удается получить токен доступа с помощью Spotipy - PullRequest
0 голосов
/ 04 августа 2020

Я локально развернул в Heroku минималистичное приложение c Flask, которое использует Spotipy в качестве оболочки для Spotify API.

Я использую поток кода авторизации Spotify, в котором пользователю предлагается ввести разрешение только один раз. При локальном запуске приложение работает по назначению, но не в рабочей среде. Проблема возникает из-за функции redirect_uri для настроек Spotify и Spotify. Итак, если в бэкэнд-скрипте я поставил http://localhost:9120/callback и тот же redirect_uri для настроек приложения Spotify, я получу успешную аутентификацию, и скрипт будет работать как задумано (даже когда я запускаю его вручную через s sh).

Если я изменю redirect_uri на https://<name>.herokuapp.com/callback и в настройках Spotify https://<name>.herokuapp.com/callback, когда я вхожу в систему с s sh, чтобы попытаться запустить скрипт вручную на сервере, он останавливается на «Вставить ссылку URL-адреса, на который вы были перенаправлены» , это ссылка, по которой мы получаем auth_token - таким образом, мы не можем завершить скрипт, потому что перенаправление не происходит.

Код:

username = sys.argv[1]
client_id = "<random>"
client_secret = "<random>"
redirect_uri = 'https://name.herokuapp.com/callback'
scope = 'user-library-read playlist-modify-public'
 
playlist_id = ""
user_id = ""

token = util.prompt_for_user_token(username,
                                   scope,
                                   client_id,
                                   client_secret,
                                   redirect_uri)

Flask код:

@application.route("/")
def init():
    return render_template("index.html")


@application.route("/", methods=["POST"])
def handle_data():
    info = request.form
    spoti =  info['spoti']
    link = info['yt_link']
    x = link.find("list=")
    print(link[x+5::])
    fin = f"python3 project.py {spoti} {link[x+5::]}"
    res = subprocess.check_output(fin, shell=True)
    return render_template("index.html",content="SUCCESS, CHECK SPOTI")


if __name__=="__main__":
    application.run(debug=True)

И в настройках приложения Spotify я установил redirect_uri на https://<name>.herokuapp.com/callback, но я никогда не получу перенаправление?

Любая помощь будет приветствоваться.

...