Spotify API: ошибка 401, «не предоставлен токен»

#javascript #java #api

#javascript #java #API

Вопрос:

Я пытаюсь следовать руководству на Youtube, чтобы привыкнуть к Spotify API, но я продолжаю получать ту же ошибку, несмотря на то, что проверил документы, если я допустил опечатку. Я сравнил свой код с тем, которым делятся в видео, и они выглядят точно так же, но я продолжаю получать эту ошибку:

 {
 "error": {
 "status": 401,
 "message": "No token provided"
 }
}
 

Для справки, мой js находится здесь

 const app = {};
app.apiUrl = 'https://api.spotify.com/v1';

//Allow user to enter some names
app.events = function() {
    $('form').on('submit', function(e){
        e.preventDefault();
        let artists = $('input[type=search]').val();
        artists = artists.split(',');
        let search = artists.map(artistName => app.searchArtist(artistName));

        $.when(...search)
            .then((...results) => {
                console.log(results);
            });
    });
};

//Go to spotify to get the artist name
app.searchArtist = (artistName) => $.ajax({
    url: `${app.apiUrl}/search`,
    method:'GET',
    dataType: 'json',
    data: {
        q: artistName,
        type: 'artist'
    }
});

//Using the IDs, get the albums

//Get tracks

//Build playlist

app.init = function() {
    app.events();
};

$(app.init);
 

Я знаю, что видео было опубликовано 4 года назад, но я также проверил документацию конечной точки, и, похоже, с 4-летней давности никаких изменений не произошло.

Дополнительная ссылка, мой HTML-код:

 <body>
    <main class="main-container">
        <section>
            <div class="form">
                <img src="images/note.svg" alt="">
                <form action="">
                    <input type="search" value="muse,ghost">
                    <input type="submit" value="Create">
                </form>
                <p>Icon created by unlimicon from the Noun Project</p>
            </div>
            <div class="playlist">
                <div class="loader">
                    <div class="inner-circle"></div>
                </div>
            </div>
        </section>
    </main>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="script.js"></script>
</body>
 

Комментарии:

1. «Все запросы к веб-API требуют аутентификации. Это достигается путем отправки действительного токена доступа OAuth в заголовке запроса. Для получения дополнительной информации об этих методах аутентификации см. Руководство по авторизации Web API «. developer.spotify.com/documentation/web-api

2. Самое первое, что упоминается в документации конечной точки, — это заголовок авторизации.

Ответ №1:

Похоже, вам не хватает вашего ключа API или вы не передаете его должным образом.

Ответ №2:

Перейдите к https://developer.spotify.com/console/get-search-item / чтобы сгенерировать токен OAuth и использовать тот же токен в вашем вызове API в качестве токена носителя авторизации.

введите описание изображения здесь

Ответ №3:

Вы уже определили токен доступа к spotify?

https://developer.spotify.com/

 app.searchArtist = (artistName) => $.ajax({
    url: `${app.apiUrl}/search`,
    method:'GET',
    dataType: 'json',
    data: {
        q: artistName,
        type: 'artist'
    },
    headers: {
      "Authorization": `Bearer ${yourToken}`
    }
}); 

Комментарии:

1. Спасибо за информацию! Я добавил ваш фрагмент в свой код и заменил ‘yourToken’ на мой токен на предъявителя, но почему-то он сказал, что мой токен недействителен?