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

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

Код, который я запускаю:

import sys
import spotipy
import spotipy.util as util

token = util.prompt_for_user_token('idxxx',
                           'user-library-read',
                           client_id='axxx',
                           client_secret='Bxxx',
                           redirect_uri='http://localhost')

scope = 'user-library-read'

if len(sys.argv) > 1:
    username = sys.argv[1]
else:
    print("Usage: %s username" % (sys.argv[0],))
    sys.exit()

token = util.prompt_for_user_token(username, scope)

if token:
    sp = spotipy.Spotify(auth=token)
    results = sp.current_user_saved_tracks()
    for item in results['items']:
        track = item['track']
        print(track['name'] + ' - ' + track['artists'][0]['name'])
else:
    print("Can't get token for", username)

Проблема возникает, когда я запускаю код. Я перенаправлен на мой URI перенаправления и после того, как вставляю его обратно в терминал, я получаю это:

Traceback (most recent call last):
  File "spot01.py", line 9, in <module>
    redirect_uri='http://localhost')
  File "/home/user/.local/lib/python3.6/site-packages/spotipy/util.py", line 92, in prompt_for_user_token
    token = sp_oauth.get_access_token(code, as_dict=False)
  File "/home/user/.local/lib/python3.6/site-packages/spotipy/oauth2.py", line 434, in get_access_token
    raise SpotifyOauthError(response.reason)
spotipy.oauth2.SpotifyOauthError: Bad Request

Я попытался получить доступ к oauth2.py из файлового менеджера и терминала, но он говорит, что это хранилище не существует. Также я попытался установить spotipy через страницу github, где есть необходимые файлы, но все еще ничего.

Есть идеи? Большое спасибо.

1 Ответ

0 голосов
/ 02 мая 2020

Я решил проблему, загрузив нужные файлы отсюда https://github.com/plamere/spotipy/tree/master/spotipy

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

О, перед тем как выполнить любую команду, я набрал этот набор команд на терминале:

$ bash
$ export SPOTIPY_CLIENT_ID='xxx'
$ export SPOTIPY_CLIENT_SECRET='xxx'
$ export SPOTIPY_REDIRECT_URI='http://localhost/'

где ххх вы положили свои учетные данные и по ссылке на ваш локальный хост или ссылку на ваш профиль на github.

...