Spotipy как авторизовать нескольких пользователей?

Я пытаюсь создать веб-приложение, в котором пользователь авторизует свою учетную запись Spotify, чтобы у API был доступ, а затем веб-приложение создает список воспроизведения на основе их текущей музыки. У меня оно работает для моей собственной учетной записи Spotify, но когда другие люди пытаются использовать приложение, оно не просит их войти в систему (поскольку оно уже авторизовано с моей учетной записью).

Я думаю, что использую неправильный тип токена, но я очень новичок во всем этом и не знаю, какие следующие шаги предпринять. Я прочитал это сообщение и вижу, что что-то с база данных, вероятно, потребуется, и я также прочитал поток кода авторизации, связанный с этим сообщением. Я не работал ни с чем из этого, и пост/страница недостаточно полны для такого новичка, как я, поэтому я не уверен, с чего начать. Любая помощь приветствуется. Вот код, который я написал как функцию авторизации пользователя:

def authenticate_user(username, scope, ID, SECRET, URI):
    '''
    Authenticates the user and creates a spotify object to interact with the API

    Returns: spotify object
    '''
    token = util.prompt_for_user_token(username, scope, ID, SECRET, URI)

    if token:
        sp = spotipy.Spotify(auth=token)

    else:
        print ("Can't get token for", username)
        return

    return sp

Я предполагаю, что после его первого запуска и правильного подключения к моей учетной записи Spotify у него уже есть этот токен, и он фактически не проходит процесс авторизации для нового человека, пробующего приложение, потому что токен уже кэширован.

Опять же, любая помощь или направление будут высоко оценены.


person rbb    schedule 14.10.2020    source источник


Ответы (1)


Вы используете Spotify Authorization Flow? Если да, установите show_dialog = True в token = util.prompt_for_user_token(username, scope, ID, SECRET, URI). Должно работать так, как вы хотите.

token = util.prompt_for_user_token(username, scope, ID, SECRET, URI, show_dialog = True)

Edit: Оказывается, это на самом деле не работает, но следуйте ответу в Spotipy на авторизации Django без копирования и вставки в консоль

person Kwaku Biney    schedule 13.12.2020