@Insssane

Spotify API. При запросе чтобы получить топ Артистов,Response 403. Как исправить?

Хочу получить топ исполнителей через Spotify API, но при запросе ошибка 403. Делал всё как в документации https://developer.spotify.com/console/get-current-...

По ссылке выше можно получить OAuth Token, и если делать запрос через него то всё получается, я не понимаю нужно ли делать запрос по новому токину или мой подойдёт ?
Access Token обновлен и если сделать запрос на несколько треков, то всё работает.

client_data = f'{client_id}:{client_secret}'
client_data_bytes = client_data.encode('ascii')
base64_bytes_client_data = base64.b64encode(client_data_bytes)
base64_client_data = base64_bytes_client_data.decode('ascii')


class RefreshToken:

    def __init__(self):
        self.refresh_token = refresh_token
        self.client_data = base64_client_data

    def refresh(self):

        query = 'https://accounts.spotify.com/api/token'

        response = requests.post(query, data={'grant_type': 'refresh_token', 'refresh_token': refresh_token},
                                 headers={'Authorization': 'Basic ' + self.client_data})

        response_object = response.json()
        return response_object['access_token']


obj = RefreshToken()
refreshed_token = obj.refresh()


def get_top_items(refreshed_token):

    type_item = 'artists'
    top_items_endpoint = f'https://api.spotify.com/v1/me/top/{type_item}?'

    get_params = {
        'time_range=': 'medium_term',
        'limit=': '10',
        'offset=': '5',
    }

    get_header = {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + refreshed_token
    }

    res = requests.get(top_items_endpoint, params=get_params, headers=get_header)

    # top_objects = res.json()

    print(res)
  • Вопрос задан
  • 587 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
403, как правило, говорит о том, что у пользователя нет прав для данного действия, неверный токен, токен истек. Как получали токен, какой скоуп передавали? Spotify явно хочет `user-top-read`, скорее всего не передали его
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы