Как решить: недостаточная клиентская область в Python с использованием Spotipy - PullRequest
0 голосов
/ 16 мая 2019

Когда я пытаюсь запустить кретинские модули в Spotipy, я получаю сообщение об ошибке «Недостаточная область клиента». Spotify выдает клиенту 403 сообщение об ошибке «Токен не предоставлен»

Перепробовал несколько модулей только на нескольких работах, таких как модуль current_user (), но другие выкладывают ошибку Недостаточная область клиента.

Перепробовал несколько модулей только на нескольких работах, таких как модуль current_user (), но другие выкладывают ошибку Недостаточная область клиента.

import spotipy
import os
import json
import sys
import webbrowser
import spotipy.util as util
from json.decoder import JSONDecodeError


username = sys.argv[0]

try:
    token = util.prompt_for_user_token(username)

except:
    os.remove(f".cache-{username}")
    token = util.prompt_for_user_token(username)


spotify = spotipy.Spotify(auth=token)

albums = spotify.current_user_saved_albums(limit= 100, offset = 0)
userplaylist = spotify.current_user_playlists()
spuser= spotify.current_user()


class spotifyUser:

    def __init__(self, userid, followers, playlist):
        self.userid = userid
        self.followers = followers
        self.playlist = playlist
        self.albums


#list all user playlists
def all_playlists(playlist):

    for r in range(len(playlist['items'])):
        print(playlist['items'][r]['name'])

currentuser = spotifyUser(spuser['display_name'],spuser['followers'] 
['total'], userplaylist)

#all_playlists(currentuser.playlist)
print(albums)

При запуске получается:

Traceback (most recent call last):
  File "C:\Users\cesse\PycharmProjects\Spotipy\venv\lib\site-packages\spotipy\client.py", line 119, in _internal_call
    r.raise_for_status()
  File "C:\Users\cesse\PycharmProjects\Spotipy\venv\lib\site-packages\requests\models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://api.spotify.com/v1/me/albums?limit=100&offset=0

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "C:/Python37/codes/Testspotipy.py", line 20, in <module>
        albums = spotify.current_user_saved_albums(limit= 100, offset = 0)
      File "C:\Users\cesse\PycharmProjects\Spotipy\venv\lib\site-packages\spotipy\client.py", line 585, in current_user_saved_albums
        return self._get('me/albums', limit=limit, offset=offset)
      File "C:\Users\cesse\PycharmProjects\Spotipy\venv\lib\site-packages\spotipy\client.py", line 146, in _get
        return self._internal_call('GET', url, payload, kwargs)
      File "C:\Users\cesse\PycharmProjects\Spotipy\venv\lib\site-packages\spotipy\client.py", line 124, in _internal_call
        headers=r.headers)
    spotipy.client.SpotifyException: http status: 403, code:-1 - https://api.spotify.com/v1/me/albums?limit=100&offset=0:
     Insufficient client scope

1 Ответ

1 голос
/ 17 мая 2019

Передайте дополнительный аргумент в вашу подсказку для вызова токена, область видимости - строка, разделенная пробелами:

token = util.prompt_for_user_token(username, scope="user-library-read <etc>")

Список доступных областей действия

...