Spotify API авторизация для создания плейлиста - PullRequest
1 голос
/ 31 марта 2020

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

Вот как выглядит начало с моей учетной записью:

################### Account Information ######################

cid ='*my client id*' # Client ID
secret = '*my secret id*' # Client Secret
client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
username = '*my username*' 
token = util.prompt_for_user_token(username=username, scope='playlist-modify-public', client_id=cid, client_secret=secret, redirect_uri="http://localhost:8888/callback")

#############################################################

Затем я пытаюсь создать плейлисты:

############### Create Playlist #################

created_playlist_minor = sp.user_playlist_create(username, "New Playlist Minor", description='Minor')
created_playlist_major = sp.user_playlist_create(username, "New Playlist Major", description='Major')
created_playlist_other = sp.user_playlist_create(username, "New Playlist Other", description='Other')

#################################################

А потом выдает ошибку

spotipy.client.SpotifyException: http status: 403, code:-1 - https://api.spotify.com/v1/users/*username*/playlists:
This request requires user authentication.

1 Ответ

0 голосов
/ 07 апреля 2020

Вы передаете объект SpotifyClientCredentials своему клиенту Spotify. Это аутентифицирует spotipy.Spotify, так что вы можете делать все, что вам дает ваш ключ API разработчика (например, получать информацию о песнях в опубликованном c списке воспроизведения). Вы не дали своему spotipy.Spotify токену аутентификации пользователя, поэтому вы не можете указать c пользовательские вещи, такие как создание списка воспроизведения. Вы должны сделать следующее:

username = '*my username*' 
token = util.prompt_for_user_token(
    username=username,
    scope='playlist-modify-public', 
    client_id=cid, 
    client_secret=secret, 
    redirect_uri="http://localhost:8888/callback"
)
sp = spotipy.Spotify(auth=token)

Обратите внимание, что вам не нужно передавать свой идентификатор клиента и секретный номер spotipy.Spotify, токена достаточно

...